2016-04-13 39 views
1

私が開始する前に、ここにTOSのエラー3075質問があり、私は助けてくれるものを見つけるために良い見通しを持っていましたが、できない。VBA実行時エラー3075にアクセス

私はVBAで書かれたAccessデータベースを持っています。私は単にデータベースに問い合わせているSQL文を実行しようとしています。私は、私のSQLクエリが無効であることを示唆している古典的な3075エラーを取得しています。私は、メッセージボックスにクエリを印刷し、それはうまく見えますが、私はインナー結合を使用していると私はあまりにも彼らに精通していない。

誰かが私のコードをチェックして私に手を差し伸べてもらえますか?

マイSQL関連のVBAコードは以下の通りです:

MsgBox strSQL 

Set rs = db.OpenRecordset(strSQL, dbOpenDynaset) 
If rs.RecordCount > 0 Then 
    rs.MoveLast 
    lblTotal.Caption = rs.RecordCount 
Else 
    lblTotal.Caption = "0" 
End If 

かなり標準のもの。 strSQLは、if文の複雑なセットに基づいているため、私はどのようにして補完していません。私はレコードを設定しようとしたときます。strSQLの値は次のとおりです。

SQL Statement

私の疑惑は、私は日付を参照しています方法に問題があるということです。

tblHistory:
tblHistory

tblBooks:続き tblBooks1tblBooks2

tblBookTypes: あなたに全体像を与えるために、以下の参照先の3つの表がありますtblBookTypes

私は、SQLステートメントを右に切断して問題を切り離そうとしました。私はSELECT * FROM tblHistoryのような簡単なステートメントで動作させることができ、それにWHEREパラメータを追加することもできますが、Inner Joinを導入した後は再び3075エラーが発生します。

誰かが間違っていると知っていますか?これは私を怒らせている!

+3

クエリステートメントの最後の部分である 'WHERE'節を作成します。 Accessクエリデザイナーのデザインビューを使用して、同様のクエリを最初から構築する方が幸運かもしれないと思います。動作したら、SQLビューに切り替えて有効な 'SELECT'ステートメントを見て、VBAコードを修正するときにそのモデルをモデルとして使用します。 – HansUp

+0

あなたは血の救われた人です。それは、内部結合後の最後にWHEREステートメントを置くことだけです。それを答えにしたいなら、私はそれを受け入れます。本当にありがとう! –

答えて

1

WHERE句が間違った位置にあるため、クエリがアクセスに不満を持ちました。代わりに、このパターンの

SELECT ... FROM ... WHERE ... INNER JOINは、クエリ文の最後にそのWHERE句を移動し、言い換えればSELECT ... FROM ... INNER JOIN ... WHERE

のようなパターンを必要としています。

関連する問題