我有一个 Excel 工作簿,其中有几个连接到 Access 数据库中的查询。我希望能够通过 USB key 与同事共享此内容,但连接字符串具有到数据库的直接路径,如下所示:DSN=MS Access Database;DBQ=C:\USERS\Me\Desktop\Database.accdb;DefaultDir=C:\;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;
据我所知,这里不能使用相对路径。
有没有办法在打开时获取 Excel 文件的当前路径并在 VBA 中创建连接? (数据库文件和 Excel 文件将始终位于相同的相对位置)
最佳答案
您可以像这样检索桌面的路径
sPath = Environ("USERPROFILE") & "\Desktop"
这意味着您可以在连接字符串中使用以下内容
sPath & "\Datbase.accdb"
更新 为了使它更健壮,如果数据库文件存在,添加一个函数将是一个好主意。您可以使用类似于 this 的函数
Function fileExists(s_directory As String, s_fileName As String) As Boolean
Dim obj_fso As Object
Set obj_fso = CreateObject("Scripting.FileSystemObject")
fileExists = obj_fso.fileExists(s_directory & "\" & s_fileName)
End Function
关于excel - 使用 VBA 从 Excel 创建到 Access 数据库的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52293788/