次のコードをデバッグしていて、例外が発生しました: クエリ式 'data1.PS NO = data2.PS N '。2つのデータテーブルでINNER JOINを実行しているときにvb.netのクエリ式に構文エラー(演算子がありません)があります
コードは次のとおりです。
If data1 Is Nothing And data2 Is Nothing Then
MsgBox("Open two excel files to generate report", MsgBoxStyle.Information, "Try Again")
Else
cntcn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=YES'"
oleConnection = New System.Data.OleDb.OleDbConnection(cntcn)
oleCommand = New System.Data.OleDb.OleDbDataAdapter("SELECT May FROM [data1] INNER JOIN [data2] ON data1.PS NO=data2.PS NO WHERE data1.Month = 'May'", oleConnection)
oleCommand.Fill(data3)
End If
ここ
私は2つのデータテーブルのDATA1とDATA2を作成し、内側はquery.Butは、上記の例外を持って参加し適用している 助けてください。 ありがとうございます。
あなたはPS」という名前の列を持っていますかいいえ "?空白を含む識別子を使用することは非常に貧弱なので、それらのスペースを削除する必要があります。あなたがそれを行うことができない、またはしない場合、あなたはすでにテーブル名でそれをやっているので、あなたはすでに何をすべきかを知っています。つまり、列名のまわりに角括弧を入れて単一の識別子として扱います。 – jmcilhinney
ありがとうございます@jmcilhinneyはい私はカラム番号があります。私はそれをブラケットに入れました。しかし、新しいエラーが発生しています: 'Microsoft Accessデータベースエンジンが' data1 'オブジェクトを見つけることができませんでした。オブジェクトが存在し、その名前とパス名のスペルが正しいことを確認してください。 'data1'がローカルオブジェクトでない場合は、ネットワーク接続を確認するか、サーバー管理者に問い合わせてください。 "しかし、data1はローカルオブジェクトです – Krishna