Avatar billede enric Nybegynder
19. december 2003 - 15:20 Der er 8 kommentarer og
1 løsning

Jeg vil indlæse hele indholdet af en cd

Jeg vil indlæse hele  indholdet af en cd,  med direcctory og under direcctory på en database ind i Acces
Jeg har skrevet det lille program men den skifter ikke dirrectory.
Er der nogen som kan hjælpe mig?
Tak
*********
Dim dbs As Database
Dim strDBName As String
Dim rst As Recordset
Dim Catalag As String
Dim Catalogito As String
Private Sub Command1_Click()
File1.Path = Dir1.Path
For ind = 0 To File1.ListCount - 1
            Catalogito = File1.List(ind)
Catalag = Catalogito
Opdatering
Next ind
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
C = Dir1.ListCount
D = Dir1.Path
End Sub
Private Sub Drive1_Change()
  Dir1.Path = Drive1.Drive
File1.Path = Dir1.Path
End Sub
Private Sub Opdatering()
strDBName = "c:\kasseapparat\catalag1\catalag1.mdb"
Set dbs = OpenDatabase(strDBName)
Set rst = dbs.OpenRecordset("Catalag", dbOpenTable)

With rst
.AddNew
!CDNr = Text1
!titel = Text2
!Data = Catalag
.Update
'.MoveNext
End With
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Avatar billede thesurfer Nybegynder
19. december 2003 - 15:33 #1
En alternativ løsning:
1) Find cdrom drevets bogstav (f.eks. X:)
2) Brug dos-prompten med: dir X:\ /a/s/o > dirs.txt
3) Læs og filtrer/parse indholdet af dirs.txt
4) Slet dirs.txt igen.

Betydningen af "dir X:\ /a/s/o > dirs.txt".
Dir: viser indholdet af den mappe man står i, med mindre en sti er angiver (X:\)
/a: viser også skjulte og system filer
/s: tager også undermapper med
/o: sorterer listen i alfabetisk rækkefølge
> dirs.txt: smider listen over i filen "dirs.txt".

">" erstatter en evt nuværende fil, med nyt indhold.
">>" tilføjer nyt indhold til eksisterende indhold af filen.
Avatar billede thesurfer Nybegynder
19. december 2003 - 15:35 #2
"Find cdrom drev"-kode (indsæt en combobox med navnet "Combo1"):

Dim fs, d, x, volumename
Set fs = CreateObject("Scripting.FilesystemObject")

Combo1.Clear

For x = 1 To Drive1.ListCount - 1
    Set d = fs.getdrive(fs.GetDriveName(fs.GetAbsolutePathName(Drive1.List(x))))
    If d.IsReady Then
        volumename = " " & d.volumename
    Else
        volumename = Empty
    End If
   
    If d.DriveType = 4 Then Combo1.AddItem UCase(Drive1.List(x)) & volumename
    Combo1 = Combo1.List(0)
Next
Avatar billede enric Nybegynder
19. december 2003 - 18:10 #3
Tak, men jeg havde ikke tænkt mig at lave i Dos og den anden løsning det tilfredsstiller mig ikke fordi jeg ikke kan få hele indholdet af CD
Avatar billede martin_moth Mester
21. december 2003 - 11:48 #4
Jeg forstår ikke helt problemet - er det du vil ikke bare at loope over alle mapper på CD'en, og smide alle filer ind i databasen? Eller hvad er problemet? Måske bare mig der er dum

I øvrigt, husk
  Set dbs = nothing
  Set rst = nothing
:o)
Avatar billede enric Nybegynder
22. december 2003 - 01:33 #5
undskyld,jeg har selv fundet ud af det
men jeg vil alligevel give de 30 point til thesurfer
Tak
Avatar billede martin_moth Mester
22. december 2003 - 07:45 #6
husk nu Set .. = nothing, især når du set'ter objekterne i en sub der bliver kaldt flere gange :o)

Glædelig jul
Avatar billede thesurfer Nybegynder
22. december 2003 - 15:02 #7
OK.. her er et svar.
Jeg ved ikke hvorfor, men det kan du forklare..? :)
Avatar billede enric Nybegynder
22. december 2003 - 16:22 #8
Jeg gav dig pointer fordi du gav mig ideen og fordi det snart er jul
Tak
Til Martin moth tak for din kommentar
Avatar billede thesurfer Nybegynder
22. december 2003 - 16:29 #9
Takker for points, og glædelig jul :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester