使用VBA从Excel创建与Access数据库的连接
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用VBA从Excel创建与Access数据库的连接相关的知识,希望对你有一定的参考价值。
我有一个Excel工作簿,其中有几个连接到Access数据库中的查询。我希望能够通过USB密钥与同事分享这一点,但是连接字符串有一个直接到数据库的路径,如下所示:
DSN=MS Access Database;DBQ=C:USERSMeDesktopDatabase.accdb;DefaultDir=C:;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;
从我所知道的相对路径不能在这里使用。有没有办法在打开时获取Excel文件的当前路径并在VBA中创建连接? (数据库文件和Excel文件将始终位于相同的相对位置)
答案
用这个:
Path = ActiveWorkbook.Path & ""
如果您想要代码所在的工作簿路径,请使用:
Path = ThisWorkbook.Path & ""
另一答案
您可以像这样检索桌面的路径
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
以上是关于使用VBA从Excel创建与Access数据库的连接的主要内容,如果未能解决你的问题,请参考以下文章
使用 VBA 从 Access 表中将选定的列导入 Excel
使用 VBA 将 Access 查询链接到 Excel [重复]
从 Excel VBA-检查访问表是不是存在/如果不存在,则创建/复制
使用VBA将VBA模块从Access项目导出到Excel项目