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

标签 excel vba ms-access connection

我有一个 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/

相关文章:

java - 从 Excel 坐标放置 anylogic 代理

C# Excel 读取多维数组

excel - 将一系列表格与文本垂直对齐

vba - 如何在运行时动态创建控件

vba - 网络文件路径无法在 VBA/MS Access 中打开

java - 将数据从 JTable 导入到 Excel

sql - 使用 VBA 根据其他表的条件获取值的总和?

sql - '[Microsoft][ODBC SQL Server 驱动程序][SQL Server]用户登录失败'错误

vba - 将 Access 中的数据写入 Excel 文件

database - MS Access 的实体关系图