Если вам просто нужен путь MDB, открытый в настоящее время в пользовательском интерфейсе Access, я бы предложил написать функцию, которая анализирует CurrentDB.Name и затем сохраняет результат в статической переменной внутри функции. Примерно так:
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
Преимущество состоит в том, что оно перебирает имя только один раз.
Конечно, он работает только с файлом, открытым в пользовательском интерфейсе.
Другой способ написать это - использовать функции, предоставленные по ссылке внутри функции выше, таким образом:
Public Function CurrentPath() As String
Static strPath As String
If Len(strPath) = 0 Then
strPath = FolderFromPath(CurrentDB.Name)
End If
CurrentPath = strPath
End Function
Это делает поиск текущего пути очень эффективным при использовании кода, который можно использовать для поиска пути для любого имени файла / пути.