2017-03-02 8 views
0

MS AccessでVBAを使用して内部結合を使用してテーブルを更新しようとしましたが、 SQLをSQL Server Management Studioでテストしたところ、動作しています。結果としてエラーが表示されます。下記を参照してください。VBA - オペレータSQLクエリエラーが見つかりません

ありがとうございました。 Accessで

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 " 

enter image description here

+0

「A.RevBillCtrl」はどのデータ型ですか? A.RevBillCtrlの –

+0

データ型は、整数です。 – Alex

答えて

1

参加するとアップデートは、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 

ところで、以前の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インナーはC ON B.SCC = C.SC AS dbo_tblSubconsに参加します'。インナーB ON B.PNC = A.PLC = 8 – Alex

+0

C B.SCCに= C.SCC セットA.RevBillCtrlとしてdbo_tblSubconsに加わるよう 更新dbo_tblMain A 内側にネストされたが、私が持っている – cha

+0

に参加すると、ワンを試みるdbo_tblPlateNoに参加します両方を試みたが、同じエラーに終わった。申し訳ありません – Alex

0

基本的な考え方は、あなたがネストされた方法でJOINをしなければならないということである。彼らは、加入ネストされた構文を使用していました。 正しいものの下を参照してください。

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を使用して結合をドラッグするだけで、アクセスは構文を処理します –

関連する問題