[VBA] Problem mit Recordset und ActiveConnection

ronaldo84

Erfahrenes Mitglied
Hallo.

Ich habe eine Form. Bei Anzeigen dieser Form wird über einen Recordset (rst) ein Wert aus einer Tabelle ausgelesen. Das mache ich mit
Code:
Private Sub Form_Current()
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
 
With rst
		.ActiveConnection = CurrentProject.Connection
		.CursorLocation = adUseClient
		.CursorType = adOpenDynamic
		.LockType = adLockOptimistic
	End With
 
rst.Open "Select Liefer FROM AB WHERE Liefer <> 0 AND nr = '" & Forms![AB]!nr & "' "
If rst.RecordCount > 0 Then
	Me.txtlieferbericht.Visible = True
Else
	Me.txtlieferbericht.Visible = False
End If
rst.close
 
End Sub
Das klappt auch. Wenn ich nun aber weitermache möchte ich an einer anderen Stelle wieder mit einem Recordset arbeiten. Diesesmal in einem Modul
Das mache ich auch so:
Code:
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
With rs
		.ActiveConnection = CurrentProject.Connection
		.CursorLocation = adUseClient
		.CursorType = adOpenDynamic
		.LockType = adLockOptimistic
	End With
	 rs.Open "SELECT Pos, Nr, Anz, Firma, [kurz-bez] FROM [AB Artikel] Where Cstr(Nr) = " & Forms![AB]!nr
rs.Close
Dann kommt bei dem Modul der Fehler:
Unzulässige Verwendung von Null
Wenn ich mit im Modul mittels MSGBox die ActiveConection ausgeben lasse ist diese Leer. Das erklärt auch den Fehler. Kann wie kann ich den Fehler verhindern, ohne das ich die Verbidung manuelle zuweisen kann? Weiß da jemand was?
 
Habe es jetzt anders gelöst. Habe nun aber ein weitere Problem.
Ich möchte einen Datensatz aktualisieren. Dies mache ich mit
Docmd.Runsql wenn ich nun aber an den Punkt komme wo er die Abfrage ausführen soll, kommt die Fehlermeldung:
Konnte Datensätze nicht aktualsiern wegen Sperrverletzung (in gekürzter Form). Habe es auch schon mit currentdb.execute versucht. Die SQL-Syntax ist richtig. Weiß jemand wie ich das machen kann?
Also konkret mein Problem:
Ich möchte einen Datensatz in einer Tabelle ändern. Auf dieser Tabelle basiert ein Formular. Durch einen Knopfdruck sollen nun die Daten der Tabelle, auf welche das Formular aufbaut aktualisiert werden. Ist das irgendwie möglich?
Edit: Natürlich ohne das Formular zu schliessen.
 
Zuletzt bearbeitet:
Sagen wir es so, wenn du ein Formular hast, was direkt mit einer Tabelle verknüpft ist, und du befindest dich in Datensatz x, kannst du den natürlich nicht auf knopfdruck ändern, da dieser grad im zugriff durch das Formular ist.
Wenn du aber einen Wert in dem Formular änderst, wird dieser doch auch automatisch in der Tabelle geändert, also verstehe ich noch nicht so ganz dein Problem.
 

Neue Beiträge

Zurück