SQLステートメントに内部結合が1つしかない場合、完全に機能しました。 2番目のテーブルに参加しようとしましたが、構文エラー(演算子がありません)があるというエラーが表示されています。ここで何が間違っていますか?
adsFormView.SelectCommand = "SELECT * FROM [tableCourse] INNER JOIN [tableGrade] ON [tableCourse].[grading] = [tableGrade].[id] INNER JOIN [tableCourseType] ON [tableCourse].[course_type] = [tableCourseType].[id] WHERE [prefix]='" & myPrefix & "' AND [course_number]='" & myCourseNum & "'"
マルチテーブル結合の場合、角括弧で余分な結合をネストする必要があります。
SELECT ...
FROM ((origintable
JOIN jointable1 ON ...)
JOIN jointable2 ON ...)
JOIN jointable3 ON ...
基本的に、最初のテーブルを超えて参加するすべての追加テーブルには、元の「FROM」テーブルの前にブラケットが必要であり、対応するJOIN「on」句に閉じブラケットが必要です。
MS Access(具体的には、Jet/ACE)では、複数の結合を持つ括弧が必要です。試してください:
adsFormView.SelectCommand = _
" SELECT * FROM ([tableCourse] " & _
" INNER JOIN [tableGrade] " & _
" ON [tableCourse].[grading] = [tableGrade].[id]) " & _
" INNER JOIN [tableCourseType] " & _
" ON [tableCourse].[course_type] = [tableCourseType].[id] " & _
" WHERE [prefix]='" & myPrefix & "'" & _
" AND [course_number]='" & myCourseNum & "'"