2011-11-30 54 views
0

在一个全新的MS Access 2010数据库中,我使用ODBC连接将SQLite数据库中的两个表链接起来。我有以下联合查询:SQLite中的SQLite语法错误从MS访问中选择查询

SELECT Calibration_Header.Gage_ID FROM Calibration_Header 
UNION SELECT CHArchive.Gage_ID FROM CHArchive; 

如果我执行使用sqlite3的命令行应用程序针对同一数据库此SQL,它成功运行并返回正确的数据。当我运行中的MS Access 2010数据库查询,我得到了以下错误消息:在MS Access运行时

ODBC--call failed. 

near "(": syntax error (1) (#1) 

针对不同的表,其他联合查询得到同样的错误消息。在sqlite3命令行中运行时,它们会成功运行并返回正确的数据。

+0

感谢您的信息。这是针对的前端数据库将能够使用Access或SQLite作为后端数据库,因此传递查询将不理想。 – user1073718

+0

联合查询不是最终应用程序的标准解决方案。也许你可以多说一些你想做的事情,有人可能会提供一个侧面的解决方案? – Fionnuala

+0

可以对记录进行归档,将其从常规表中取出并放入归档表中。表单中的几个组合框需要能够查看所有记录的Gage ID,而不是。联合查询是为了驱动这些组合框。每次打开表单时,我都可以创建临时表格,但这是我希望避免的开销。 – user1073718

回答

0

我怀疑UNION SELECT不在标准的Access语言中。您可以尝试在Access 2010中实现ANSI-92,然后将代码作为代码运行,如Albert Kallal在http://www.utteraccess.com/forum/Create-View-Access-t1924479.html&p=1924500#entry1924500中所述。我使用这些说明来成功创建Access“视图”。

+0

UNION SELECT是标准Access。那里没有问题。我认为问题在于Access在处理到源表的外部链接时使用Union时遇到了问题。在这种情况下,OP的'归档表'(或者我称之为登台表)的想法会更好。 – PowerUser