Syntax-Fehler in der INSERT INTO Anweisung

Micxas

Benutzer
Beiträge
6
Hallo zusammen,

ich heiße Mario und verzweifle an einer simplen INSERT INTO Anweisung! Folgende Anweisung enthält einen Syntaxfehler:

INSERT INTO TblAuftraege (AuftragsNr, Position, Jahr, Woche, KundenNr, ArtikelNr, Menge, Einheit, Bemerkung, Verpackung) VALUES (12345, 100, 2016, 15, 12345, 99999, 1250, 'Stück', 'keine', 'Wellpappkiste auf Pressholzpalette')

Der Zugriff auf die Access 2007-Datenbank folgt aus einem VB.NET Programm über Microsoft.ACE.OLEDB.12.0! Der Comipiler spuckt mir bei der Anweisung folgenden Fehler aus:

Syntaxfehler in der INSERT INTO-Anweisung.

Übrigens, folgende Beispiel-Anweisung funktioniert aus gleicher Applikation fehlerfrei:

INSERT INTO TblArtikel_neu (ArtikelNr, Durchmesser_mm, Wandstärke_mm, Fixlänge_mm, FixMinTol_mm, FixPlusTol_mm, Legierung, UQNs, Chargentrennung, Entgraten, TIR_mm, Bemerkung) Values (77777, 150, 10, 235.25, 0.05, 0.05, 7153, 'keine', True, 'Nein', 0.05, 'keine')


Wo liegt mein Fehler? Kann mir da jemand vielleicht einen Tip geben?

Gruß,

Mario
 
Werbung:
1. Gibt es die Tabelle?
2. Gibt es alle Spalten?
3. Sind die Datentypen korrekt?

Die ersten Fragen die ich mir stellen würde... Und wir dir leider nicht beantworten können...
 
Hallo,

danke für die schnelle Antwort.

Die Punkte 1 bis 3 habe ich vor dem Posting natürlich mehrfach überprüft. Ich kann mit der Tabelle ansonsten ganz normal arbeiten, z.B. die Datenabfrage funktioniert fehlerfrei.

Ich kann mir diesen Fehler nicht erklären.

Gruß,

Mario
 
1. Berechtigungen überprüft?
2. Semikolon am Ende vergessen?
3. Text länger als der Datentyp es zulässt ?

Kannst du das Statement mal direkt ausführen... Nicht über den Umweg VB ?
 
Hallo,

das war ein guter Tip. Danke! Habe das Statement jetzt mal über ein VBA-Modul in Access mit dem Befehl:

DoCmd.RunSQL "INSERT INTO TblAuftraege (AuftragsNr, ..."


laufen lassen.

Der Datensatz wurde dabei erfolgreich eingefügt. Somit liegt der Fehler wohl irgendwo in meiner VB.NET Applikation.

Gruß,

Mario
 
Hallo nochmal,

ich verzweifel. Ich finde den Fehler nicht.

Folgende Funktion führe ich aus der VB.NET Applikation aus:

Code:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
             Dim auftragString As String = "INSERT INTO TblAuftraege(AuftragsNr, Position, " & _
            "Jahr, Woche, KundenNr, ArtikelNr, Menge, Einheit, " & _
            "Bemerkung, Verpackung) VALUES (" & _
            "12345, 100, 2015, 15, 12345, 99999, 1500, 'kg', 'keine', 'Gitterbox');"

            Dim artikelString As String = "INSERT INTO TblArtikel_neu (ArtikelNr, Durchmesser_mm, Wandstärke_mm, " & _
           "Fixlänge_mm, FixMinTol_mm, FixPlusTol_mm, Legierung, UQNs, Chargentrennung, " & _
           "Entgraten, TIR_mm, Bemerkung) Values (" & _
           "11111, 115.5, 20.45, 100.5, 0.5, 0.5, 1234, 'keine', true, 'Hand', 0.06, 'keine');"

            insertData(artikelString) 'Funktioniert Fehlerfrei
            insertData(auftragString) ' Wirft Syntaxfehler

  End Sub


  Sub insertData(ByVal sqlString As String)
           Dim ConnString As String = _
                         "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                         "Data Source = "C:\Fertigung2015.accdb"
           Dim con As New OleDb.OleDbConnection
           Try
                  Dim anzahl As Integer = 0
                  con.ConnectionString = ConnString
                  con.Open()
                  Using cmd As New OleDb.OleDbCommand(sqlString, con)
                        System.Console.WriteLine(cmd.CommandText)
                       anzahl = cmd.ExecuteNonQuery()
                  End Using
                  MsgBox("Datensatz erfolgreich eingepflegt!", vbInformation)
             Catch ex As Exception
                   MsgBox(ex.Message)
             Finally
                   con.Close()
            End Try
  End Sub

Ich nutze die insertData-Methode seit langem problemlos. Sie wirft nur bei dem auftragString einen Syntaxfehler aus. Das komische ist, das der GLEICHE (!!!) String in Access in einem Modul mittels DoCmd problemlos funktioniert.

Ich verstehe die Welt nicht mehr! :-(

Gruß,

Mario
 
Zuletzt bearbeitet von einem Moderator:
Hallo zusammen,

möchte hier kurz die Lösung präsentieren ;).

Der Fehler wurde durch die Spalte 'Position' herrvorgerufen. Nachdem ich die Spalte umbenannt habe, funktionierte das Einfügen wieder.
Unglaublich, oder? Anscheinend darf man in der Konstellation, in der ich Daten einpflege, Spalten nicht mit 'Position' benennen.

Naja ... man lernt nie aus.

Auf jeden Fall danke für euren Support! ;-)

Gruß,

Mario
 
Werbung:
Zurück
Oben