Ich habe ein vorhandenes Programm, das in VBA geschrieben wird und in MS Access ausgeführt wird. Aus verschiedenen Gründen möchten wir es aus Access herausnehmen und ein eigenständiges Programm erstellen.ADO Jet SQL löst "Syntaxfehler in FROM-Klausel" aus Immer
So portiere ich VBA zu C++. Der folgende Code funktioniert in 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
Mein Port des Codes nach C++ unten funktioniert nicht. Es gibt Fehler "Syntax Error in FROM-Klausel" jedes Mal.
_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);
Ich war supsicious, dass die [HEADR] das Problem war, dass vielleicht, dass eine Art von Makro war, die nur in der Access-Umgebung erweitert. Also habe ich einige andere SQL-Anweisungen nur als Test ausprobiert und immer denselben Syntax Error in der FROM-Klausel bekommen.
Ich versuchte
SELECT MSysObjects.Name AS table_name FROM MSysObjects;
SELECT * FROM MSysObjects WHERE Typ = 1 UND Flags = 0;
WÄHLEN SIE 'ASDF' ALS TEST VON DUAL;
Alle diese gaben den gleichen Fehler.
Irgendwelche Ideen? Danke!
Was ist die Datenquelle 'test.aaf'? Access-Datenbanken enden entweder in .mdb oder .accdb und erfordern den vollständigen Pfad in der Datenquellenreferenz. Wenn dies eine andere Datenquelle ist, vergewissern Sie sich, dass Ihre SQL-Syntax sich daran hält. – Parfait