【发布时间】:2016-04-26 18:47:06
【问题描述】:
我正在尝试设置一个访问数据库 (Queries.accdb),该数据库将用于查询多个访问数据库作为表源。我可以通过硬编码来做到这一点,但是当我尝试使用相对路径时出现语法错误。我希望能够移动 Queries.accdb。
当前文件结构:
- C:\Temp\PB\28\A.accdb
- C:\Temp\PB\28\B.accdb
- C:\Temp\PB\28\Queries.accdb
- C:\Temp\PB\29\A.accdb
- C:\Temp\PB\29\B.accdb
- C:\Temp\PB\29\Queries.accdb
当前工作查询:
SELECT *
FROM [;database=C:\Temp\PB\28\A.accdb].[Catalog] AS a
INNER JOIN [;database=C:\Temp\PB\28\B.accdb].[Catalog] AS b
ON a.componentid = b.externalid;
当我尝试不同的变体(.\ ~\ 等)来删除 DB 文件前面的硬编码路径时,它会自动在 Access 中添加“默认数据库文件夹”设置。 (例如:“C:\”会将以下查询更改为“C:\A.accdb”)
SELECT *
FROM [;database=A.accdb].[Catalog] AS a
INNER JOIN [;database=B.accdb].[Catalog] AS b
ON a.componentid = b.externalid;
我创建了一个 VBA 函数来返回完整的“from”括号(包括数据库文件)和一个只返回路径的函数,但我无法找出在 from 子句中使用 VBA 函数的正确语法。
"[;database=" + Application.CurrentProject.Path + "\A.accdb]"
"Application.CurrentProject.Path"
【问题讨论】: