Fehler: "Syntaxfehler in INSERT INTO..." auf ADO-Recordset.Update

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 189220 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Problembeschreibung

Beim Aufrufen der AddNew-Methode, und dann die Update-Methode eines Recordset-Objekts rufen, wird der folgende Fehler zurückgegeben:
Fehler '80040e21' bei Microsoft OLE DB-Provider für ODBC-Treiber
[Microsoft][ODBC Microsoft Access 97-Treiber] Syntaxfehler in der INSERT INTO-Anweisung.
Mithilfe von Microsoft Access ODBC-Treiber-version4.00.4202.00 oder höher, ist die Fehlermeldung:
Laufzeitfehler '-2147467259(80004005) ':
[Microsoft][ODBC Microsoft Access Driver]Syntaxfehler in der INSERT INTO-Anweisung.

Ursache

Dieser Fehler tritt auf Wenn die folgenden Bedingungen zutreffen:
  • Die CursorType ist AdOpenForwardOnly (0).
  • Der CursorLocation ist AdUseServer.
  • Ein Feld aktualisiert weist auf einen Bereich in der Name des Feldes.
  • Verwenden Sie den Microsoft Access ODBC-Treiber.
Aufrufen der AddNew und Update-Methoden, auf einen serverseitigen, Forward-only-Cursor ist ein ungültiger Vorgang. (ActiveX Data Objects) kompensiert dieser Code Fehler, indem generiert eine INSERT-Anweisung Ausführen des Vorgangs. Wenn ADO die INSERT-Anweisung generiert, ist es nicht die Feldnamen begrenzen. Daher generieren Feldnamen, die ein Leerzeichen enthalten einen Syntaxfehler.

Für eine gültige INSERT-Anweisung würde beispielsweise lauten wie folgt:
   INSERT INTO Table ([field with space]) Values(value)
				
ADO generiert den folgenden Code:
   INSERT INTO Table (field with space) Values(value)
				

Lösung

Hier sind einige mögliche Lösungen:
  • Verwenden Sie keine Leerstellen in Feldnamen in Ihrer Datenbank.
  • Verwenden Sie eine CursorLocation AdUseClient (3).
  • Verwenden Sie keine CursorType AdOpenForwardOnly (0), wie z. B. AdOpenKeyset (1), AdOpenDynamic (2) oder AdOpenStatic (3).
  • Führen Sie Operation durch Generieren eigene INSERT-Anweisung mit Trennzeichen auf den Feldnamen anstelle von Methoden AddNew und Update aus.
  • Verwenden Sie den Microsoft OLE DB-Providers für Jet, Version 3.51 oder 4.0 anstelle des Microsoft OLE DB-Provider für ODBC und den Microsoft Access ODBC-Treiber.

Status

Microsoft hat bestätigt, dass es sich dabei um einen Fehler in den Microsoft-Produkten handelt, die zu Beginn dieses Artikels aufgeführt sind.

Eigenschaften

Artikel-ID: 189220 - Geändert am: Mittwoch, 2. März 2005 - Version: 2.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Data Access Components 1.5
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1 Service Pack 2
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
  • Microsoft Open Database Connectivity Driver for Access 3.5
  • Microsoft Open Database Connectivity-Treiber für Access 4.0
Keywords: 
kbmt kbbug kbdatabase kbdriver kbjet KB189220 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 189220
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com