このようなものがすでに投稿されているか、単純な修正である場合はお詫びしますが、私はあちこち探し回っていて、この問題の解決策を見つけることができないようです. 私は vba: ms アクセスを使用しています。クエリを実行して、異なるデータベースにある 2 つの同一のテーブルを比較しようとしています。ユーザー入力のみを必要とするさまざまなデータベースで実行できるように、スクリプトを作成しようとしています。ただし、このプロセスを通じて、次のようなエラーが発生し続けるようです。
select ステートメントに予約語が含まれているか、スペルが間違っているか欠落している引数名が含まれています。
LinkUserTable 関数は基本的に、ユーザー入力に基づいて別の DB からリンク テーブルを作成します。以下はサブルーチンです。
Sub LinkTables()
Dim sTable1 As String
Dim sTable2 As String
sTable1 = LinkUserTable
sTable2 = LinkUserTable
vars_sql = "SELECT " & sTable1 & ".[f_ptid]," & sTable1 & ".[f_flag]," & sTable1 & ".[f_user]," & sTable1 & ".[f_brief]," & sTable1 & ".[f_gid]," & sTable1 & ".[f_vco]," & sTable1 & ".[f_dtype]," & sTable1 & ".[f_precs]," & sTable1 & ".[f_addr]," & sTable1 & ".[f_ndim]," & sTable1 & ".[f_sys]," & sTable1 & ".[f_unit]," & sTable1 & ".[f_value]," & sTable1 & ".[f_pred]," & sTable1 & ".[f_bflag]," & sTable1 & ".[f_dim1]," & sTable1 & ".[f_dim2]," & sTable1 & ".[f_dim3]," & sTable1 & ".[f_bound]," & sTable1 & ".[f_size]," & sTable1 & ".[f_updat]," & sTable1 & ".[f_time]," & sTable1 & ".[f_ldes]," & sTable1 & ".[f_sflag]," & sTable1 & ".[f_tflag]," & sTable1 & ".[rid]" + _
"FROM" + sTable1 + " AS LEFT JOIN " + sTable2 + " AS ON sTable1.[f_ptid] = sTable2.[f_ptid]" + _
"WHERE (((" & sTable2 & ".[f_ptid]) Is Null))"
If CheckQuery("new_old") = "Yes" Then
DoCmd.DeleteObject acQuery, "new_old"
End If
Set qdf = CurrentDb.CreateQueryDef("new_old", vars_sql)
End Sub
これに基づいて、このエラーを引き起こす可能性のある問題は何でしょうか? すべてのフィールドは両方のデータベースにあり、すべて同じプロパティ (データが異なるだけ) です。必要に応じてさらに提供できる情報が不足している場合は、お詫び申し上げます。