VBAで作成され、MS Accessの内部で実行されている既存のプログラムがあります。さまざまな理由から、私たちはAccessから取り出して独立したプログラムを作りたいと考えています。ADO Jet SQLで「FROM句の構文エラー」が発生する
私はVBAをC++に移植しています。次のコードはVBAで動作します
Dim DataFile As New ADODB.Connection
Dim rstSrc As New ADODB.Recordset
DataFile.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.aaf;"
rstSrc.Open "SELECT * FROM [Headr];", DataFile, adOpenStatic, adLockReadOnly
以下のC++へのコードのポートは機能しません。そのたびに「FROM句の構文エラー」というエラーが発生します。
_RecordsetPtr RS("ADODB.Recordset");
_ConnectionPtr CON("ADODB.Connection");
CON->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.aaf;","","",adConnectUnspecified);
RS->PutRefActiveConnection(CON);
RS->Open("SELECT * FROM [Headr];",vtMissing,adOpenStatic,adLockReadOnly,adCmdTable);
私は[HEADR]多分それが唯一のアクセス環境に展開されるマクロのいくつかの種類だったこと、問題だったことsupsiciousました。だから私は他のいくつかのSQL文をテストのように試してみましたが、FROM節には常に同じ構文エラーがあります。
私はMSysObjects FROM table_nameのAS
SELECT MSysObjects.Nameを試してみました。
SELECT * FROM MSysObjects WHEREタイプ= 1 ANDフラグ= 0;
SELECT 'ASDF' AS TEST FROM DUAL;
これらのすべてで同じエラーが発生しました。
アイデア? ありがとう!
データソース 'test.aaf'とは何ですか? Accessデータベースは.mdbまたは.accdbで終わり、データソース参照ではフルパスが必要です。これが別のデータソースである場合は、SQL構文がそれに準拠していることを確認してください。 – Parfait