Wenn Sie nur den Pfad der derzeit in der Access-Benutzeroberfläche geöffneten MDB benötigen, würde ich vorschlagen, eine Funktion zu schreiben, die CurrentDB.Name analysiert und das Ergebnis anschließend in einer statischen Variablen in der Funktion speichert. So etwas wie das:
Public Function CurrentPath() As String
Dim strCurrentDBName As String
Static strPath As String
Dim i As Integer
If Len(strPath) = 0 Then
strCurrentDBName = CurrentDb.Name
For i = Len(strCurrentDBName) To 1 Step -1
If Mid(strCurrentDBName, i, 1) = "\" Then
strPath = Left(strCurrentDBName, i)
Exit For
End If
Next
End If
CurrentPath = strPath
End Function
Dies hat den Vorteil, dass es nur den Namen einmal durchläuft.
Natürlich funktioniert es nur mit der Datei, die in der Benutzeroberfläche geöffnet ist.
Ein anderer Weg, dies zu schreiben wäre, die Funktionen an den link innerhalb der Funktion oben so zu nutzen:
sehr effizient den Strompfades Abrufen
Public Function CurrentPath() As String
Static strPath As String
If Len(strPath) = 0 Then
strPath = FolderFromPath(CurrentDB.Name)
End If
CurrentPath = strPath
End Function
Dies macht während Code verwendet wird, die für die Suche verwendet werden kann, der Pfad für einen beliebigen Dateinamen/Pfad.
Was ist es abscheulich ist? Es sieht für mich ziemlich einfach aus und ich hatte meine eigenen Versionen für A97 geschrieben, die noch heute in Apps laufen, obwohl sie bessere eingebaute Funktionen bieten, als in A97 verfügbar waren. –
Aus Fragen entfernt: Ist CurrentProject.Path in Access 97 verfügbar? – Fionnuala
Antwort: Nein, CurrentProject fehlt vollständig in Access 97. Es gibt jedoch CurrentDb.Name, aber das ist der vollständige Pfad einschließlich Dateiname. - apenwarr – Fionnuala