使用VBA从Excel创建到Access数据库的连接

时间:2018-09-12 11:12:02

标签: excel vba ms-access connection

我有一个Excel工作簿,其中有多个连接到Access数据库中的查询。我希望能够通过USB密钥与同事共享,但是连接字符串具有指向数据库的直接路径,如下所示:

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文件始终位于相同的相对位置)

2 个答案:

答案 0 :(得分:1)

您可以像这样检索到桌面的路径

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

答案 1 :(得分:0)

使用此:

Path = ActiveWorkbook.Path & "\"

如果要获取代码所在的工作簿的路径,请使用:

Path = ThisWorkbook.Path & "\"