Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo!

Ich bin ein blutiger Access Anfänger und habe eine Frage.

Ich möchte gerne in einer Datenbank den Inhalt eines Ordners anzeigen lassen. Wie ich das anzeigen muss kriege ich schon hin ( hoffe ich zumindest ), aber nicht, wie ich einen Ordner nach Dateien durchsuchen kann.

Ich hoffe es ist verständlich erklärt!?

Geschrieben

Was hast du denn genau vor?

Zum Suchen macht sich normalerweise das FileSearch-Objekt ganz gut. Schau mal in der Access-Hilfe, da gibts ein nettes Beispiel dazu.

Ein wenig bisschen VBA Kenntnisse brauch man aber schon dafür.

Geschrieben

Mist habe ich mich falsch ausgedrückt!

Ja, du hast recht, ich will die Dateinamen anzeigen lassen. Aber ich kann ja, wenn ich in der Codeansicht bin auf Extras und dann auf Verweise gehen.

Muss ich da irgendwas auswählen damit das läuft? Das war eigentlich die Frage.

Wie schon gesagt ich bin ein blutiger Access Anfänger. Sei bitte nicht böse, auch wenn die Antworten vielleicht einfach sind!!!:(

Geschrieben

Nein, für das FileSearch-Objekt brauchst du keine Verweise. Schwierig wirds nur wenn du noch bestimmte Zusatzinformationen zur Datei brauchst.

Beispiel für ein Access-Modul


Option Compare Database

Option Explicit


' Testfunktion

'

' Gibt alle Dateien aus, die sich auf Laufwerk C: befinden

'(nur das Wurzelverzeichnis)

Public Function Test()


    'Variablen deklarieren

    Dim i As Long


    'Attribute für die Suche festlegen

    Application.FileSearch.FileName = "c:\*.*"


    'Suche durchführen und auswerten

    With Application.FileSearch

        If .Execute() > 0 Then

            MsgBox "Es wurde(n) " & .FoundFiles.Count & _

                " Datei(en) gefunden."

            For i = 1 To .FoundFiles.Count

                MsgBox .FoundFiles(i)

            Next i

        Else

            MsgBox "Es wurden keine Dateien gefunden."

        End If

    End With


End Function

Geschrieben

Ich möchte dich nicht nerven, aber bei diesem Beispiel findet er keine Dateien.

Ich habe schon verschiedene Laufwerke und Ordner gewählt aber es kommt immer die Meldung " Es wurden keine Dateien gefunden".

Und noch eine Frage: Wozu ist das "Application"?

Geschrieben

Schau mal in die VB Hilfe und suche nach FileSearch.NewSearch oder nur NewSearch.

Dort sind brauchbare Beispiele fuer die Dateisuche drin.

Applikation ist Deine aktuelle Anwendung. FileSearch koenntest Du auch in Excel oder Word starten.;)

Geschrieben

Das obere Beispiel war übrigens für Access 97 und funktionierte auch.

Ich habs nochmal ein wenig idiotensicherer gemacht. Versuchs bitte nochmal:


Option Compare Database

Option Explicit


' Testfunktion

'

' Notwendige Verweise:

' Access 97: Microsoft Office 8.0 Object Library

'            Visual Basic For Applications

'

' Gibt alle Dateien aus, die sich auf Laufwerk C: befinden

'(nur das Wurzelverzeichnis)

Public Function Test()


    'Variablen deklarieren

    Dim i As Long


    With Application.FileSearch

        'Attribute für die Suche festlegen

        .NewSearch

        .LookIn = "C:\"

        .SearchSubFolders = False

        .FileType = msoFileTypeAllFiles

        .FileName = "*.*"

        'Suche durchführen und auswerten

        If .Execute() > 0 Then

            MsgBox "Es wurde(n) " & .FoundFiles.Count & _

                " Datei(en) gefunden."

            For i = 1 To .FoundFiles.Count

                MsgBox .FoundFiles(i)

            Next i

        Else

            MsgBox "Es wurden keine Dateien gefunden."

        End If

    End With


End Function

Geschrieben

Jau, danke Olli! Jetzt geht es! Vielleicht war es gut, dass du es idiotensicher gemacht hast.:D

Aber noch eine Frage. Ich habe "msoFileTypeAllFiles" auskommentiert, weil er das nicht zu kennen scheint. Kann es daran liegen, das ich Office XP habe?

Geschrieben

Ist möglich,

msoFileTypeAllFiles ist für Access 97 in der "Microsoft Office 8.0 Object Library" deklariert und es kann sein, dass das bis Office XP verändert wurde. Es macht aber bestimmt nichts, wenn du es weglässt.

Hauptsache es funktioniert :)

Geschrieben

Ja, es geht auch ohne, das habe ich auch so gemacht. Aber noch eine kurze Frage.

Wie kann ich denn noch andere Laufwerke durchsuchenlassen? Hab versucht anstatt C:\ D:\ einzutippen. Geht nicht. Wieso, und wie kann ich das realiesieren?

Danke

Geschrieben

Normalerweise gibt es da keine Einschränkung. Es sollte reichen die Eigenschaft LookIn auf das gewünschte Laufwerk zu setzen.


[..]

.LookIn = "D:\"

[..]

Ich brauch ja wohl nicht erwähnen, dass sich dort auch Dateien befinden müssen. Wenns nicht geht versuchs mal mit einfachen Sachen wie "C:\Programme\" "C:\WINNT\" "C:\TEMP\" "D:\TEMP\"

Als letzte Möglichkeit kann man noch SearchSubFolders auf "true" stellen, das kann aber je nach Ordnerstruktur ganz schön lange dauern.

Bei mir funktioniert es prima (Access 97,2000)

-----

Sollte es trotzdem nicht klappen, gibt es (zur Not) auch noch eine ganz andere Möglichkeit um Dateien, Ordner usw. zu durchsuchen. Die Methode ist aber ein wenig komplizierter. Das Stichwort heisst Windows Scripting Host.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...