MS访问查询多个MS Access数据库与相对路径
问题描述:
我想设置一个访问数据库(Queries.accdb)将用于查询多个访问数据库作为表源。我可以通过硬编码来完成,但是当我尝试使用相对路径时,出现语法错误。我希望能够移动Queries.accdb。MS访问查询多个MS Access数据库与相对路径
当前文件结构:
- 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个\查询。 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子句中使用VBA函数的正确语法。
"[;database=" + Application.CurrentProject.Path + "\A.accdb]"
"Application.CurrentProject.Path"
答
我找不出正确的语法使用在 VBA函数引用条款。
那是因为你不能。在调用查询之前,路径必须解析。
因此,您必须在VBA中构建完成的SQL字符串,然后调用查询。
这就是说,岂不是更简单,只是链接需要为当前操作的表,为其指定的名称作为CatalogA和CatalogB?
(重新)链接很容易在VBA中完成,并且完全免费从篡改查询。