Si solo necesita la ruta del MDB actualmente abierto en la IU de acceso, le sugiero que escriba una función que analice CurrentDB.Name y luego almacene el resultado en una variable estática dentro de la función. Algo como esto:
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
Esto tiene la ventaja de que solo recorre el nombre una vez.
Por supuesto, solo funciona con el archivo que está abierto en la interfaz de usuario.
Otra forma de escribir esto sería el uso de las funciones previstas en el link dentro de la función anterior, así:
Public Function CurrentPath() As String
Static strPath As String
If Len(strPath) = 0 Then
strPath = FolderFromPath(CurrentDB.Name)
End If
CurrentPath = strPath
End Function
Esto hace que la recuperación de la trayectoria de corriente muy eficiente mientras que la utilización de código que puede ser usado para encontrar la ruta para cualquier nombre de archivo/ruta.
¿Cuál es horrible al respecto? Parece un código bastante simple para mí, y tenía mis propias versiones escritas para A97 que todavía se ejecutan en aplicaciones de hoy, a pesar de que proporcionan mejores funciones integradas de las que estaban disponibles en A97. –
Se ha eliminado de las preguntas: ¿CurrentProject.Path está disponible en Access 97? – Fionnuala
Respuesta: No, CurrentProject falta por completo en Access 97. Sin embargo, CurrentDb.Name, pero esa es la ruta completa, incluido el nombre del archivo. - apenwarr – Fionnuala