Supportnet / Forum / Datenbanken
Recordset FindFirst klappt nicht Microsoft Access VBA
Frage
Ich habe ein Formular und möchte von diesem aus in einer anderen Tabelle - die mit der Formulartabelle in Beziehung steht etwas eintragen, in abhängigkeit von einer KombiBox. Nun versuche ich schon wierder ewig, weil das FindFirst nicht funktioniert. Was mache ich falsch ???
"Operation wird für diesen Objekttyp nicht unterstützt" ist die Fehlermeldung im Debugger, Meine PersonalNr ist vom Typ Text.
Das Eintragen in die Tabelle mit .Edit funktioniert
Private Sub btnTeilnahme_Click()
Rem ArbeitschutzID in Person_DRK ändern eintragen
Rem Personalnummer
Debug.Print Me![KombiASPerson]
Dim sFindString As String
Dim sPersNr As String
If Not IsNull(Me![KombiASPerson]) Then
sPersNr = Me![KombiASPerson]
Dim rst As Object
Set db = CurrentDb()
Set rst = db.Openrecordset("tblPerson_DRK")
rst.MoveFirst
Rem rst.FindFirst "[Vorname] = ´" & "ach " & "´"
sFindString = "[PersonalNr] = ´ " & sPersNr & "´"
rst.FindFirst sFindString
rst.Edit
rst![ArbeitsschutzID] = 13
rst.Update
rst.Close
End If
Antwort 1 von Teddy7
Dim ktab1 As String
Dim ttab1 As DAO.Recordset
Set ttab1 = CurrentDb.OpenRecordset("Select * from tblPatient", dbOpenDynaset)
ktab1 = "Vorname = ´" & Feldname & "´"
ttab1.FindFirst ktab1
Gruß
Teddy
Dim ttab1 As DAO.Recordset
Set ttab1 = CurrentDb.OpenRecordset("Select * from tblPatient", dbOpenDynaset)
ktab1 = "Vorname = ´" & Feldname & "´"
ttab1.FindFirst ktab1
Gruß
Teddy
Antwort 2 von Gudrun11
Danke für den Hinweis, aber bei mir klappt das alles eben nicht so. evtl. hast Du ja eine andere Programmierumgebung. Ich programmiere mit MS Acces 2002 SP 3 --- VBA
bei:
Dim ttab1 As DAO.Recordset
erscheint bei mir schon: Fehler beim kompilieren benutzerdefineirter Typ nicht definiert.
ALso Nehme ich:
Dim ttab2 As Recordset
schön und gut. damit werden mir dann die Methoden .. usw. von Recordset angezeigt - aber wenn ich es benutze
Set ttab2 = CurrentDb.OpenRecordset("tblPerson")
erscheint dann "Typen unverträglich"
un deshalb weiche ich dann aus auf
Dim ttab2 As Object
Das Argument dbOpenDynaset
Set ttab2 = CurrentDb.OpenRecordset("tblPerson", dbOpenDynaset)
kennt er bei mir auch nicht, da steht dann "Ungültiges Argument."
So geht mir das hier. Und so finde ich die ganze Programmiererei nicht so komfortabel und schreibe meinen Hilfe-Ruf hier rein.
Gudrun
bei:
Dim ttab1 As DAO.Recordset
erscheint bei mir schon: Fehler beim kompilieren benutzerdefineirter Typ nicht definiert.
ALso Nehme ich:
Dim ttab2 As Recordset
schön und gut. damit werden mir dann die Methoden .. usw. von Recordset angezeigt - aber wenn ich es benutze
Set ttab2 = CurrentDb.OpenRecordset("tblPerson")
erscheint dann "Typen unverträglich"
un deshalb weiche ich dann aus auf
Dim ttab2 As Object
Das Argument dbOpenDynaset
Set ttab2 = CurrentDb.OpenRecordset("tblPerson", dbOpenDynaset)
kennt er bei mir auch nicht, da steht dann "Ungültiges Argument."
So geht mir das hier. Und so finde ich die ganze Programmiererei nicht so komfortabel und schreibe meinen Hilfe-Ruf hier rein.
Gudrun
Antwort 3 von erik
Bei Access 2002 ist ADO standardmäßig für den Datenzugriff aktiviert. Der Code, den du verwendest und von Teddy illustriert wurde, beruht auf DAO. Lies dazu bei donkarl den Punkt 7.11
Antwort 4 von Teddy7
Du mußt einen Verweis auf Microsoft DAO setzen.
Im Codefenster auf Extras - Verweise
Du wirst im Forum bessere Hilfe erhalten, wenn Du die auftretenden Fehlermeldungen beschreibst und nicht nach "Daumenmethode" einfach was anderes nimmst.
Gruß
Teddy
Im Codefenster auf Extras - Verweise
Du wirst im Forum bessere Hilfe erhalten, wenn Du die auftretenden Fehlermeldungen beschreibst und nicht nach "Daumenmethode" einfach was anderes nimmst.
Gruß
Teddy

