2011-11-30 3 views
0

새로운 MS Access 2010 데이터베이스에서 ODBC 연결을 사용하여 SQLite 데이터베이스의 두 테이블에 연결했습니다. 내가 sqlite3를 명령 줄 응용 프로그램을 사용하여 동일한 데이터베이스에 대해이 SQL을 실행하면 성공적으로 실행하고 적절한 데이터를 반환,MS-Access에서 Union Select Query에서 SQLite 구문 오류

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

: 나는 다음과 같은 통합 쿼리가 있습니다. 나는 MS 액세스 2010 데이터베이스에 쿼리를 실행하면, 다음과 같은 오류 메시지가 : MS Access에서 실행할 때 다른 테이블에 대한

ODBC--call failed. 

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

다른 통합 쿼리 같은 오류 메시지가 표시됩니다. sqlite3 명령 줄에서 실행할 때 성공적으로 실행되고 적절한 데이터를 반환합니다.

+0

감사합니다. 이 대상의 프런트 엔드 데이터베이스는 Access 또는 SQLite를 백 엔드 데이터베이스로 사용할 수 있으므로 통과 쿼리가 이상적이지 않습니다. – user1073718

+0

통합 쿼리는 최종 응용 프로그램의 표준 솔루션이 아닙니다. 아마도 당신은 당신이하고 싶은 일에 대해 조금 더 말할 수있을 것이고 누군가가 측면 해법을 제공 할 수있을 것입니다. – Fionnuala

+0

레코드를 아카이브 할 수 있습니다. 레코드를 일반 테이블에서 가져 와서 아카이브 테이블에 저장합니다. 양식의 여러 콤보 상자는 아카이브 된 모든 레코드에 대해 게이지 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)에 설명 된대로 쿼리를 코드로 실행 해 볼 수 있습니다. 이 지침을 사용하여 액세스 "보기"를 만들었습니다.

+0

UNION SELECT는 표준 Access입니다. 거기에 문제 없습니다. 문제는 Access가 원본 테이블에 대한 외부 링크를 처리하면서 Union을 사용하는 데 문제가 있다고 생각합니다. 이 경우 OP의 '아카이브 테이블'(또는 테이블이라고 불리는 스테이징 테이블) 아이디어가 더 잘 작동합니다. – PowerUser