05. juli 2003 - 12:55Der er
27 kommentarer og 1 løsning
Hente filnavne ind i tabel fra mappe på c:\
Hej Jeg har en tabel "tbldata", i denne tabel er det et felt "Midifil", jeg har en fortløbne form som har tabellen tbldata som postkilde. på mit c-drev har jeg en mappe C:\midifiler, i denne mappe ligger der en masse midifiler .mid.
Det jeg ønsker er: på min form har jeg en knap, når jeg klikker på denne knap skal alle filnavne fra min mappe lægges ind i tabellen. Da der er flere felter i tabellen er det vigtigt at der skrives til feltet "midifiler" i tabellen. Jge havede spørgsmålet op i går http://www.eksperten.dk/spm/372709, men fortrød, så nu prøver jeg igen. Nogen der kan hjælpe
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.
I min søgen fandt jeg også nedenstående kode, men desværre spiller det ikke, er ikke nogen haj til vba
Function HentFilListe(FilMappe As String) Dim db As Database Dim rsFilNavne As Recordset Dim FilNavn As String
Set db = CurrentDb() Set rsFilNavne = db.OpenRecordset("tblFilNavne") FilNavn = Dir(FilMappe & "*.*") ' Hent det første filnavn. Do While FilNavn <> "" With rsFilNavne .AddNew !FilNavn = FilNavn .Update End With FilNavn = Dir ' Hent næste datafilnavn. Loop
Nej ingen gode ideer - Jeg går og roder nede i drivhuset, og skulle blot ind efter lidt vand, da jeg så dit spørgsmål. Så det er ikke noget jeg har tænkt nærmere over.
Dim cnn As ADODB.Connection Dim rsFilNavne As ADODB.Recordset Dim strQuery As String Dim FilNavn As String
Set cnn = CurrentProject.Connection Set rsFilNavne = New ADODB.Recordset
strQuery = "SELECT * FROM tabel1 order by navn asc" rsFilNavne.Open strQuery, cnn, adOpenStatic, adLockOptimistic
If rsFilNavne.RecordCount > 0 Then rsFilNavne.MoveFirst FilNavn = Dir(FilMappe & "*.*") ' Hent det første filnavn. Do While rsFilNavne.EOF = False With rsFilNavne !Filer = FilNavn .Update End With FilNavn = Dir ' Hent næste datafilnavn. rsFilNavne.MoveNext Loop Else MsgBox "Der findes ingen filer i " & FilMappe, vbExclamation, "Ingen filer" End If
Jeg kan godt se det morsomme i sammenhængen. Jeg prøvede ufrivilligt den sjove tobak for mange år siden. Jeg var i Christinia til koncert med Gasolin, og selvom jeg ikke selv røg, blev jeg høj (og syg) af de andres rygning. Og siden har jeg ikke haft spor lyst.
Hej hekla Tak for dit svar, desværre køre det ikke helt, men jeg tro dog det er den vej jeg skal problemet er:
Når jeg kalder funktionen HentFilListe ("C:\Midifiler")ved tryk på knap i formen kommer din msgbox og fortæller at der ikke er nogen filer i C:\midifiler, og det er der.
Jeg kan heller lige få min tblData med feltet midifil til at spille helt ok, nednenstående er din kode som jeg har forsøgt at rette til måske du kan få den til at virke eller fortælle hvor den er gal:
Function HentFilListe(FilMappe As String)
Dim cnn As ADODB.Connection Dim rsFilNavne As ADODB.Recordset Dim strQuery As String Dim FilNavn As String
Set cnn = CurrentProject.Connection Set rsFilNavne = New ADODB.Recordset
strQuery = "SELECT * FROM tblData order by Midifil asc" rsFilNavne.Open strQuery, cnn, adOpenStatic, adLockOptimistic
If rsFilNavne.RecordCount > 0 Then rsFilNavne.MoveFirst FilNavn = Dir(FilMappe & "*.Mid") ' Hent det første filnavn. Do While rsFilNavne.EOF = False With rsFilNavne !Midifil = FilNavn .Update End With ' FilNavn = Dir ' Hent næste datafilnavn. rsFilNavne.MoveNext Loop Else MsgBox "Der findes ingen filer i " & FilMappe, vbExclamation, "Ingen filer" End If
Hej Igen Nu er jeg kommet så langt at hvis jeg har mindst en post i tblData kommer der ingen fejl,i min statuslinje kan jeg se at db'en beregner når jeg klikker på min knap, men til gengæld bliver der ikke tilføjet nogen poster overhovedet i tblData hulk hulk
Hej Nej desværre det køre ikke, gad vide havd der er galt, jeg syntes det er chekket på kryds og tværs, nogen der måske kunne sende et eks, jeg kan også sende db. den fylder ikke ret meget min mail anj@bryggemail.dk
Du skal skrive filmappen som c:\midifiler\ Husk den sidste backslash.
Jeg tror at det der er galt, er at det, som jeg satte op, er beregnet på at tilføje data til en kolonne i en tabel, hvor der er data i forvejen. Den vil kun tilføje data til kolonnen for de poster, som eksisterer i forvejen.
Hvis du vil have den til at fortsætte indtil der ikke er flere filnavne i mappen, skal du ændre:
Do While rsFilNavne.EOF = False til Do While FilNavn <> ""
jeg kan ikke huske om den har brug for en .AddNew før !Midifil = FilNavn
Fejlmeddelelsen er forvirrende, for der skulle have stået, at der ikke er nogen poster i tabellen. Jeg glemte at ændre den, da jeg ændrede Do While sætningen
Hej Hekla Tak for dit sidste svar, det spiller ikke helt, din løsning giver lidt problemer, men jeg er dog kommet lidt videre, så jeg har besluttet mig for at lukke spørgsmålet og give dig de 200 points, jeg vil arbejde lidt videre og se om jeg kan få det til at spille, tak for nu
Hej Hekla Blot til orienrering, jeg har nu fået det til at virker somm det skal, din kode var det meste af vejen rigtig, dog var der et par enkelte rettelser. Jeg lægger koden her, så andre kan evt. kan få glæden af den. Endnu engang tak for hjælpen.
Anders.
Function HentFilListe(FilMappe As String)
Dim cnn As ADODB.Connection Dim rsFilNavne As ADODB.Recordset Dim strQuery As String Dim FilNavn As String
Set cnn = CurrentProject.Connection Set rsFilNavne = New ADODB.Recordset
strQuery = "SELECT * FROM tblData order by Midifil asc" rsFilNavne.Open strQuery, cnn, adOpenStatic, adLockOptimistic
If rsFilNavne.RecordCount > 0 Then rsFilNavne.MoveFirst FilNavn = Dir(FilMappe & "*.Mid") ' Hent det første filnavn. Do Until FilNavn = "" With rsFilNavne .AddNew !Midifil = FilNavn .Update End With
FilNavn = Dir ' Hent næste datafilnavn. rsFilNavne.MoveNext Loop
Else MsgBox "Der findes ingen filer i " & FilMappe, vbExclamation, "Ingen filer" End If
Lige en sidste ting: I min filmappe ligger der 12000 filer, da jeg klikkede på min knap tog det mindre end et sekund så var min tabel opdateret med 12000 poster, hæhæ noget hurtigere en at side og taste dem ind.
Glimrende, men der er lige en allersidste ting. Fejlmeddelelsen er forkert i forhold til det, som du bruger funktionen til. Du kunne faktisk fjerne IF-sætningen. Så ville funktionen ikke kræve, at der var poster i tabellen i forvejen.
I kloge mennesker - Jeg kæmper stadig, kan ikke få skidtet til at fungere :o)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.