在MSAccess(VBA(中创建应用程序时,只需创建指向多个数据库(mdb文件(的链接即可连接到它们。现在,我用 C/C++ 重写了用户界面,并使用 ODBC 连接到数据库。如何连接到第二个数据库(mdb 文件(并将表中的数据从一个数据库联接到另一个数据库。例如,数据库 1 (file1.mdb( 包含表发票,数据库 2 (file2.mdb( 包含表价格。如何将发票与价格联接?
假设两个数据库驻留在同一个网络/服务器或计算机上,请考虑分布式查询,其中将文件名限定在括号中,这是 Jet/ACE SQL 引擎允许的。
SELECT p.*, i.*
FROM [C:PathToFile1.mdb].[Prices] p
INNER JOIN [C:PathToFile2.mdb].[Invoices] i
ON p.ID = i.PriceID
您甚至可以连接到 Excel 工作簿,假设数据采用表格格式,从带有列标题的 A1 单元格开始:
SELECT p.*, e.*
FROM [C:PathToFile1.mdb].[Prices] p
INNER JOIN [Excel 12.0 Xml;HDR=Yes;Database=C:PathWorkbook.xlsx].[SheetName$] AS e
ON p.ID = e.PriceID
与 CSV 文件相同:
SELECT p.*, c.*
FROM [C:PathToFile1.mdb].[Prices] p
INNER JOIN [text;database=C:PathToCSVFolder].CSVFile.csv AS c;
ON p.ID = c.PriceID