Suche auf Fit-for-Access.de
|
Wie Sie bei Access die Beschränkungen des „Dir“-Befehls umgehenViele Entwickler nutzen eine Routine wie die folgende aus Access_aktuell, um automatisch Sicherungskopien von allen Datenbanken anzulegen, die noch nicht im Zielverzeichnis vorhanden sind:strPath = "Z:\Test\" strDatsi = "Z:\Datsi\" strFName = Dir$ (strPath & "*.mdb") While strFName<> "" DoEvents If Dir$(strDatsi & strFName) = "" Then FileCopy strPath & strFName, strDatsi & strFName End if strFName = Dir$() WendDie Prozedur funktioniert jedoch immer nur bis zur ersten Datenbank, die sich nicht im Zielverzeichnis befindet; danach wird das Fehlen weiterer zu sichernder Datenbanken nicht mehr erkannt. Ursache des Problems ist die Tatsache, dass „Dir$()“ nicht verschachtelt eingesetzt werden kann, da der Aufruf ohne Parameter (strFName = Dir$()) sich immer am letzten Aufruf mit Parameter (If Dir$(strDatsi & strFName) = „“ Then...) orientiert und so das ursprüngliche Ziel (strFName = Dir$(strPath & „*.mdb“)) „vergisst“. Access_aktuell-Tipp: Abhilfe schaffen Sie durch eine Alternative, die für die Abfrage von Dateien oder Verzeichnissen zum Einsatz kommt: Die Microsoft Scripting Runtime Library. Diese Systemerweiterung stellt Objekte bereit, über die Sie unter anderem auf das Dateisystem zugreifen und so Dateien und Verzeichnisse auf Vorhandensein prüfen können: - Öffnen Sie ein VBA-Modul im Entwurfsmodus.
- Wählen Sie das Menü EXTRAS > VERWEISE an, setzen Sie eine Referenz auf „Microsoft Scripting Runtime“ und übernehmen Sie die Änderungen mit OK.
- Geben Sie im Modul folgende Funktion ein:
Function CheckFileOrDirExists (strName As String) As Boolean Dim fso As Scripting. FileSystemObject Set fso = CreateObject ("Scripting.FileSystemObject") If Right$(strName, 1) = "" Then ‘Verzeichnis CheckFileOrDirExists = fso.FolderExists(strName) Else CheckFileOrDirExists = fso.FileExists(strName) End If End Function
- Speichern Sie die Änderungen.
In Zukunft können Sie diese Funktion nun ohne Rücksicht auf einen eventuellen Einsatz der „Dir$()“-Funktion nutzen, um das Vorhandensein von Dateien und Verzeichnissen z. B. wie folgt zu prüfen: If Not CheckFileOrDirExists (strDatsi & strFName) Then FileCopy strPath & strFName, strDatsi & strFName End ifSie übergeben der Funktion also entweder den Namen der zu prüfenden Datei samt Laufwerk oder den Pfad des Verzeichnisses mit abschließendem Backslash. An einem eventuell vorhandenen abschließenden Backslash erkennt die Funktion, ob ein Verzeichnis oder eine Datei zu prüfen ist. Abhängig davon wird dann entweder die Funktion „FolderExists()“ oder die Funktion „FileExists()“ der FileSystemObject-Bibliothek aufgerufen. Aus: Access_aktuell – Jetzt gratis testen!
Anzeige
Outlook aktuell NEU: 5 neue Outlook- Funktionen für besseres Zeitmanagement
E-Mails, Termine und Aufgaben managen Sie ab sofort ganz gelassen mit Outlook 2007. „Outlook aktuell“ hat die 5 wichtigsten neuen Funktionen für Sie getestet. Lesen Sie nach,- wie Sie jetzt dynamische Kalender ins Internet stellen, die sich automatisch aktualisieren,
- wie Sie Ihre E-Mails jetzt mit den neuen „Schnellformatvorlagen“ auf Ihr Firmendesign trimmen,
- warum Sie mit der neuen Aufgabenleiste viel schneller und leichter arbeiten als bisher,
- wie einfach Sie Ihre eigene grafische Visitenkarte erstellen und Ihren Kontakten übermitteln,
- welche tollen neuen Funktionen Ihnen der Kalenderdruck-Assistent bietet
... und noch so viel mehr.
Damit haben Sie Ihre Organisation jederzeit im Griff – und viel mehr Zeit für Ihre wichtigen Aufgaben und Projekte.
Probieren Sie es jetzt aus!
Lesen Sie hier mehr über „Outlook aktuell“ Klicken Sie hier für Ihren kostenlosen „30-Tage-Gratis-Test“ |
Diese aktuellen News & Tipps könnten Sie interessieren:
Leider wurde kein Beitrag gefunden.
Hier finden Sie eine Übersicht aller Beiträge
|
|
|