30. april 2003 - 12:16Der er
7 kommentarer og 1 løsning
VBA i access 97
jeg har flg. script jeg gerne vil have til også at kigge i underbiblioteker til det definerede hovedbibliotek D:\billeder\SZ4\
Hvad skal da ændres i scriptet ?
Function kopier() Dim db As Database Dim rs As DAO.Recordset Dim n As Long Set db = CurrentDb Set rs = db.OpenRecordset("table1", dbOpenSnapshot) rs.MoveLast rs.MoveFirst For n = 1 To rs.RecordCount If Dir("D:\billeder\SZ4\" & rs![field1]) <> "" Then FileCopy "D:\Billeder\SZ4\" & rs![field1], "D:\billeder_ok\SZ4\" & rs![field1] End If rs.MoveNext Next n rs.Close Set rs = Nothing db.Close End Function
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du er nødt til først at lægge foldernavnene ind i et array:
Dim StartFolder as String Dim StartFolder as String Dim FolderNavn(1 to 100) as String Dim I as Integer
StartFolder = "D:\billeder\SZ4\" Folder = Dir(StartFolder, vbDirectory) I = 0 Do While Folder <> "" ' Ignorer det aktuelle bibliotek og det overordnede bibliotek. If Folder <> "." And Folder <> ".." Then ' Brug bitvis sammenligning til at sikre, at Folder er et bibliotek. If (GetAttr(StartFolder & Folder) And vbDirectory) = vbDirectory Then I=I 1 FolderNavn(I) = Folder End If End If Folder = Dir ' Hent næste folder Loop
Og så kan du så køre resten af dit program. Du kan ikke lægge dit program ind i denne løkke, da den vil forstyrre brugen af dir-sætningen.
Jeg har prøvet mit bedste. Det er lidt uoverskueligt et det her lille vindue på Eksperten. Om ikke andet så håber jeg du kan bruge det som inspiration.
Function kopier() Dim db As Database Dim rs As DAO.Recordset Dim n As Long Dim StartFolder as String Dim FolderNavn(1 to 100) As String Dim I As Integer Dim FolderAntal As Integer
StartFolder = "D:\billeder\SZ4\" Folder = Dir(StartFolder, vbDirectory) I = 0 Do While Folder <> "" If Folder <> ".." Then ' Ignorer det overordnede bibliotek. If (GetAttr(StartFolder & Folder) And vbDirectory) = vbDirectory Then I=I+1 FolderNavn(I) = Folder End If End If Folder = Dir ' Hent næste folder Loop FolderAntal=I
Set db = CurrentDb Set rs = db.OpenRecordset("table1", dbOpenSnapshot) rs.MoveLast For I= 1 to FolderAntal rs.MoveFirst For n = 1 To rs.RecordCount If Dir(FolderNavn(I) & rs![field1]) <> "" Then FileCopy FolderNavn(I) & rs![field1], "D:\billeder_ok\SZ4\" & rs![field1] End If rs.MoveNext Next n Next I
Function kopier() Dim db As Database Dim rs As DAO.Recordset Dim n As Long Dim StartFolder As String Dim Folder As String Dim FolderNavn(1 To 1000) As String Dim I As Integer Dim FolderAntal As Integer
StartFolder = "D:\billeder\" Folder = Dir(StartFolder, vbDirectory) I = 0 Do While Folder <> "" If Folder <> ".." Then ' Ignorer det overordnede bibliotek. If (GetAttr(StartFolder & Folder) And vbDirectory) = vbDirectory Then I = I + 1 FolderNavn(I) = Folder End If End If Folder = Dir ' Hent næste folder Loop FolderAntal = I
Set db = CurrentDb Set rs = db.OpenRecordset("table1", dbOpenSnapshot) rs.MoveLast For I = 1 To FolderAntal rs.MoveFirst For n = 1 To rs.RecordCount If Dir(FolderNavn(I) & rs![Name]) <> "" Then FileCopy "FolderNavn(I)" & rs![Name], "D:\total\" & rs![Name] End If rs.MoveNext Next n Next I
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.