2017-03-02 1 views
0

MS Access에서 VBA를 사용하여 내부 조인을 사용하여 테이블을 업데이트하려고하지만 SQL Update 문을 SQL Server Management Studio에서 테스트했으며 작동합니다. 결과적으로 오류가 발생합니다 (아래 참조).VBA - 누락 된 연산자 SQL 쿼리 오류

감사합니다.

액세스에서

enter image description here

+0

어떤 데이터 형식이'A.RevBillCtrl'입니까? –

+0

A.RevBillCtrl의 데이터 유형은 정수입니다. – Alex

답변

1

SQL = "Update A set A.RevBillCtrl = 8 from dbo_tblMain A inner join dbo_tblPlateNo as B ON B.PNC = A.PLC inner join dbo_tblSubcons as C on B.SCC = C.SCC " 
와 조인 업데이트는 SQL Server에 비교 구문이 다른. 올바른 구문은 다음과 같습니다.

Update dbo_tblMain AS A 
inner join dbo_tblPlateNo as B on B.PNC = A.PLC 
inner join dbo_tblSubcons as C on B.SCC = C.SCC 
set A.RevBillCtrl = 8 

BTW, 이전 버전의 Access는 차례로 이어지는 INNER JOINS를 좋아하지 않았습니다.

Update dbo_tblMain AS A 
inner join (dbo_tblPlateNo as B 
    inner join (dbo_tblSubcons as C 
    on B.SCC = C.SCC) 
on B.PNC = A.PLC) 
set A.RevBillCtrl = 8 
+0

아래 쿼리를 시도했지만 오류가 발생했습니다. 런타임 오류 '3075': 쿼리 식 'B.PNC = A.PLC 내부 ​​조인 dbo_tblSubcons AS C ON B.SCC = C.SC'구문 오류 (누락 된 연산자). 업데이트 dbo_tblMain A는 내부 은 내부 같이 dbo_tblSubcons 가입 B.PNC = A.PLC ON B로 dbo_tblPlateNo 가입 C에 B.SCC = C.SCC 8 – Alex

+0

중첩 된 하나의 시도 내가 가진 – cha

+0

을 조인 = 세트 A.RevBillCtrl 둘 다 시도했지만 같은 오류가 발생했습니다. – Alex

0

기본적 아이디어는 당신이 중첩 방식으로 조인 할 필요가 있다는 것입니다 : 그들은 조인 중첩 된 구문을 사용했다. 아래를 참조하십시오.

Sql = "UPDATE dbo_tblMain 
     INNER JOIN (dbo_tblPlateNo 
     INNER JOIN dbo_tblSubCons 
     ON (dbo_tblPlateNo.SCC = dbo_tblSubCons.SCC)) 
     ON (dbo_tblMain.PLC = dbo_tblPlateNo.PNC) 
     SET dbo_tblMain.RevBillCtrl = 8" 
+0

vba가 아닌 실제 쿼리로 쿼리를 테스트하십시오. 확실하지 않아요 여기에 vba가 필요해. 조인을 드래그하기 위해 query desinger를 사용하면 액세스가 구문을 처리합니다. –

관련 문제