Datensätze mit ODBC in Access Tabellen schreiben

09/03/2008 - 22:57 von Claus-Rainer Fischer | Report spam
Hallo NG,

ich hatte vor kurzen die Frage gestellt wie man über ODBC Access Tabellen
öffnet deren Tabellennamen führend mit Zahlen beginnen. Beispiel
10-700Signal.
Ein Tipp hat sofort geholfen der SQL String sollte wie folgt aussehen:
[10-711AbschlagVerlauf].[AbschlagTotalGrup1]
Nun sollen Daten in die Tabellen geschrieben werden. Mein Code hierzu:

ActStr = "[10-711AbschlagVerlauf]"
'sSql01 = "Select * From " & ActStr
sSql01 = "Select [10-711AbschlagVerlauf].[AbschlagTotalDatum1],
[10-711AbschlagVerlauf].[AbschlagTotalWert1],
[10-711AbschlagVerlauf].[AbschlagTotalGrup1] From [10-711AbschlagVerlauf]"


Try
DateStart = Now
cn01 = New OdbcConnection(stCn01)
cn01.Open()
Cmd01 = New OdbcCommand(sSql01, cn01)
Da01 = New OdbcDataAdapter(Cmd01)
Ta01 = New DataTable(ActStr)
Da01.Fill(Ta01)
cb = New OdbcCommandBuilder(Da01)
For I = 0 To Datenliste.Count - 1
Dim NeuerWert As DataRow = Ta01.NewRow
With NeuerWert
.Item("AbschlagTotalDatum1") = DirectCast(AbschlagWerteKompl(I),
RMMAbschlDaten).Var1
.Item("AbschlagTotalWert1") = DirectCast(AbschlagWerteKompl(I),
RMMAbschlDaten).Var2
.Item("AbschlagTotalGrup1") = DirectCast(AbschlagWerteKompl(I),
RMMAbschlDaten).Var3
End With
Ta01.Rows.Add(NeuerWert)
Next
Da01.Update(Ta01)
cn01.Close()

Die Programmausführung wird abgebrochen mit der Meldung:
ERROR [42000] [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler in der
INSERT INTO-Anweisung.
Ich habe die Spaltennamen bereits mit Klammern versehen als auch die
Tabellennamen vorrangestellt. Alles ohne Erfolg
Hat jemand eine Idee?
Gruß
Claus
 

Lesen sie die antworten

#1 Peter Fleischer
10/03/2008 - 06:02 | Warnen spam
"Claus-Rainer Fischer" schrieb im Newsbeitrag
news:

Cmd01 = New OdbcCommand(sSql01, cn01)
Da01 = New OdbcDataAdapter(Cmd01)
Ta01 = New DataTable(ActStr)
Da01.Fill(Ta01)
cb = New OdbcCommandBuilder(Da01)
For I = 0 To Datenliste.Count - 1
Dim NeuerWert As DataRow = Ta01.NewRow
With NeuerWert
.Item("AbschlagTotalDatum1") = DirectCast(AbschlagWerteKompl(I),
RMMAbschlDaten).Var1
.Item("AbschlagTotalWert1") = DirectCast(AbschlagWerteKompl(I),
RMMAbschlDaten).Var2
.Item("AbschlagTotalGrup1") = DirectCast(AbschlagWerteKompl(I),
RMMAbschlDaten).Var3
End With
Ta01.Rows.Add(NeuerWert)
Next
Da01.Update(Ta01)
cn01.Close()

Die Programmausführung wird abgebrochen mit der Meldung:
ERROR [42000] [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler in
der INSERT INTO-Anweisung.
Ich habe die Spaltennamen bereits mit Klammern versehen als auch die
Tabellennamen vorrangestellt. Alles ohne Erfolg



Hi Claus-Rainer,
ich sehe nicht, wo du die Klammern gesetzt hast.

Da der CommandBuilder die SQL-Anweisungen selbst erzeugt, muss man ihm auch
mitteilen, dass der die Klammern zu setzen hat. Das kann ich in deinem Code
nicht sehen:

cb = New OdbcCommandBuilder(Da01)
da.QuotePrefix = "["
da.QuoteSuffix = "]"

Viele Gruesse

Peter

Ähnliche fragen