Supportnet / Forum / Datenbanken
RS.Nomatch wird nicht erkannt
Frage
Hallo. Ich hatte Probleme mt einer alten Access 2.0 Datenbank, die auf mehreren Clients mit Access 97 lief. Es gab aber verschiedene Clients, die die DB nicht benutzen konnten wegen Fehlermeldungen. Nun habe ich kurzerhand eine Access 2000 DB geöffnet und alle Tabellen, Verweise, Spezifikationen importiert. Die Clients werden alle auf 2000 umgestellt. Soweit läuft auch alles. Aber ein Makro funktioniert nicht.
In den beiden markierten Zeilen erscheint ein Fehler: FEHLERZEILE1: "METHODE ODER RDATENOBJEKT NICHT GEFUNDEN."
Kommmentiere ich den Teil aus, erscheint der gleiche in FEHLERZEILE2. ???
Ich verstehe das nicht, kann mir einer helfen?
Danke !!!
****Die Funktion:****************
Function Kd_Update()
' Die Funktion fügt neue Kunden an die Tabelle "Kunden" an und klassifiziert
' alte Zuordnungen werden beibehalten
Dim DB As Database, DSGruppe As Recordset, QGruppe As Recordset
Set DB = DBEngine.Workspaces(0).Databases(0)
Set QGruppe = DB.OpenRecordset("Fortschreiben Kunden", dbOpenDynaset)
Set DSGruppe = DB.OpenRecordset("Kunden", dbOpenTable)
DSGruppe.Index = "PrimaryKey"
QGruppe.MoveFirst
Do Until QGruppe.EOF 'Schleife durchlaufen bis Ende
DSGruppe.Seek "=", QGruppe![Kunden-Nr]
If DSGruppe.NoMatch Then 'FEHLERZEILE 1
DSGruppe.AddNew
DSGruppe![Kunden-Nr] = QGruppe![Kunden-Nr]
DSGruppe![KZ-Qu] = 0
DSGruppe![KZ-Da] = 0
DSGruppe![KZ-Rest] = 0
Else
DSGruppe.Edit 'FEHLERZEILE 2
End If
DSGruppe![Name] = QGruppe![Name]
DSGruppe![Land] = QGruppe![Land]
DSGruppe![Land-KZ] = QGruppe![Land-KZ]
DSGruppe![Konzern] = QGruppe![Konzern]
If DSGruppe![KZ-Qu] < QGruppe![KZ-Qu] Then
DSGruppe![KZ-Qu] = 1
End If
If DSGruppe![KZ-Da] < QGruppe![KZ-Da] Then
DSGruppe![KZ-Da] = 1
End If
If DSGruppe![KZ-Rest] < QGruppe![KZ-Rest] Then
DSGruppe![KZ-Rest] = 1
End If
DSGruppe.Update
QGruppe.MoveNext
Loop
DSGruppe.Close
QGruppe.Close
End Function
Antwort 1 von struppi
Hallo,
Nomatch gehört zu DAO (ZB DAO350.DLL)
Schau mal nach ob die Verweise dazu gesetzt sind und ob DAO vor ADO steht.
Wenn nicht Reihenfolge änderm oder im code schreiben:
Dim DB As DAO.Database, DSGruppe As DAO.Recordset
gruß struppi
Nomatch gehört zu DAO (ZB DAO350.DLL)
Schau mal nach ob die Verweise dazu gesetzt sind und ob DAO vor ADO steht.
Wenn nicht Reihenfolge änderm oder im code schreiben:
Dim DB As DAO.Database, DSGruppe As DAO.Recordset
gruß struppi
Antwort 2 von markus pöhler
Super Tip! Das funktioniert, und ich habe keinen Schimmer warum :)
Danke!
Danke!