Selects ans ADO Recordset senden

Blace

Mitglied
Hallo,
ich schreibe gerade eine Anwendung in der in mehreren Textfeldern Daten aus einer Datenbank stehen.
Nun möchte ich in einem Feld Daten aus dieser Datenbank ausgeben, deren ID der ID entspricht, die ich in einem Edit Feld stehen habe.

Das funktioniert ja auch erstmal... ich baue die ADO Connection auf, wie ich es eben gelesen habe und sieht so aus:

Code:
    Dim tob_conn As New ADODB.Connection
    Dim tob_rs As ADODB.Recordset
    Dim tob_cmd As New ADODB.Command

Private Sub Form_load()
    Set tob_rs = New ADODB.Recordset
    tob_conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DatenbankName & ""
    tob_rs.Open "Select * from Bewerber where ID=" & Text8.Text & ";", tob_conn
    txtFields(16).Text = tob_rs.Fields("Kenntnisse").Value
End Sub

Nun will ich ja, dass der Text im Textfeld (txtFields(16)) sich ändert, wenn ich die ID ändere. Also habe ich in der methode TextChange vom ID Feld folgendes eingefügt:

Code:
    tob_rs.Open "Select * from Bewerber where ID=" & Text8.Text & ";", tob_conn
    txtFields(16).Text = tob_rs.Fields("Kenntnisse").Value

Das funktioniert nicht. Es erscheint beim ändern der ID die Fehlermeldung: "Der Vorgang ist für ein geöffnetes Objekt nicht zugelassen."
Ok, verstehen tu ich diese Meldung schon... Ich versuche im tob_rs.Open Befehl irgendetwas nur zu öffnen obwohl es schon offen ist, ich denke damit ist wohl tob_conn gemeint.
Aber wie kann ich sonst einen neuen SQL Befehl an das Recordset "tob_rs" übergeben ohne irgendetwas dabei neu zu öffnen?
Danke für jede Hilfe
Tob
 
Mit .Open öffnest du nur die Verbindung, normalerweise sendest du mit .Execute eine Anfrage (würde mit .Source auch gehen).

Schu dir dazu mal den ActiveVB-ADO-Kurs an.

Muss mich korrigieren, du kannst bei .Open natürlich auch was mitschicken. Führ es aber erst mal alleine aus, damit kannst du eventuell den Fehler eingrenzen.


Der Doc!
 
Zuletzt bearbeitet:
Hallo,

du solltest das Recordset wieder schließen...
Private Sub Form_load()
Set tob_rs = New ADODB.Recordset
tob_conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DatenbankName & ""

tob_rs.Open "Select * from Bewerber where ID=" & Text8.Text & ";", tob_conn
txtFields(16).Text = tob_rs.Fields("Kenntnisse").Value
tob_rs.close

End Sub

dann...

tob_rs.Open "Select * from Bewerber where ID=" & Text8.Text & ";", tob_conn
txtFields(16).Text = tob_rs.Fields("Kenntnisse").Value
tob_rs.close

so sollte es funktionieren ;-)
 

Neue Beiträge

Zurück