Insert mittels VBA

Hallo zusammen,

eine ganz triviale Einsteigerfrage. Ich versuche aus VBA(AutoCAD) ein Insert in eine Testtabelle zu machen.

Datenbankname: Test
Tabellenname: Test2 (sorry, ich weiß, dass die Bezeichnungen etwas abartig sind)
Tabellenfelder:
nr - Integer
name - character(20)
vorname - character(20)

Keine Indizees.

Im VBA-Projekt hab ich zunächst einen Verweis auf die MS ADO 2.7 Library gesetzt.

Und nun der Code:

Public Sub postgrescon()

Dim Conn As ADODB.Connection
Dim RS As ADODB.Recordset
Dim ConStr As String
Dim Msg As String
Dim SQL As String

Set Conn = New ADODB.Connection
ConStr = "Provider=PostgreSQL OLE DB Provider;Password=***;User ID=postgres;Data Source=localhost;Location=test"
Conn.Open ConStr
Conn.CursorLocation = adUseClient
SQL = "insert into test2(nr, name, vorname) values(2, 'lustig2', 'peter');"
Conn.Execute (SQL)

End Sub

Conn.Execute bringt nun immer folgenden Laufzeitfehler:

No columns defined in rowset

Damit kann ich ganz und gar nichts anfangen.

Putzig ist aber, dass die Anweisung anscheinend dennoch ausgeführt wird, denn ein “select * from test2” zeigt, dass sie da sind. Und wenn ich den Insert-Befehl per copy&paste als SQL-Anweisung ausführe nörgelt PG auch nicht.

Was mache ich nur falsch?

Für Hinweise danke ich Euch im Voraus.

Viele Grüße - Peter

Hallo Peter,

ich habe keine Erfahrung mit ADO, aber bist Du sicher, dass der Befehl “Conn.CursorLocation = adUseClient” benötigt wird?


mfg

fristo

Hi Fristo,

danke für die Anwort, werde es in den nächsten Tagen prüfen und hier das Ergebnis bekannt geben.

Viele Grüße - Peter