首先关闭,noob警报! :))
我需要构建一个在许多表上运行的查询。根据客户端代码,表格的名称仅在最后一位数字上有所不同。问题是,改变的值不是顺序的,所以循环如i = 1,2,3,......不起作用。一种可能的解决方案是将这些值放在另一个表的给定字段上。
这是前两个客户端015和061的代码。前导零必须是必不可少的。
SELECT LnMov2017015.CConta, RsMov2017015.DR, RsMov2017015.NInt, "015" AS CodCli
FROM LnMov2017015 INNER JOIN RsMov2017015 ON LnMov2017015.NReg = RsMov2017015.NReg
WHERE (((LnMov2017015.CConta)="6" And (LnMov2017015.CConta)="7") AND ((RsMov2017015.DR)=9999))
UNION SELECT LnMov2017061.CConta, RsMov2017061.DR, RsMov2017061.NInt, "061" AS CodCli
FROM LnMov2017061 INNER JOIN RsMov2017061 ON LnMov2017061.NReg = RsMov2017061.NReg
WHERE (((LnMov2017061.CConta)="6" And (LnMov2017061.CConta)="7") AND ((RsMov2017061.DR)=9999))
...
因此,对于第一个SELECT
表名称 LnMov2017015 ,结尾 015 是值,即客户端代码,从表格更改为表格,例如在第二个SELECT
中,表名是LnMov2017061( 061 ),是表格的区别。
对于每个客户端代码,有两个表,例如 LnMov2017015 和 RsMov2017015 ( LnMov2017061 和 RsMov2017061 为第二套客户端示)。
基于上面的示例SQL,有没有办法构建SQL?
有没有人有解决方案的想法? :)
答案 0 :(得分:0)
显然,可以构建一个查询对象来读取另一个数据库中的数据,而无需建立表链接。刚测试过,令我惊讶的是它有效。例如:
SELECT * FROM [SoilsAgg] IN "C:\Users\Owner\June\DOT\Lab\Editing\ConstructionData.accdb";
我已在VBA中使用此结构来执行DELETE和UPDATE操作语句。
答案 1 :(得分:0)
发现解决方案:)
感谢大家的投入。
我将使用SLQ
访问它们,而不是链接100个表(受密码保护)FROM Table2 IN '' ';database=C:\db\db2.mdb;PWD=mypwd'
在所有其他事情之前将它们全部与查询合并!