hab jetzt gerade angefangen in access ein bisschen tiefer einzusteigen und
bräuchte evtl. kurzen ratschlag.
Folgendes Problem:
-in der datenbank gibt es zwei id-anfangswerte, einer beginnt mir 1 und
einer mit 10000
- es soll wenn man intern einen neuen datensatz hinzufügt die letzte id
unter 10000 gefunden werden, der wert um 1 hochgezählt und in den neuen
datensatz in der id eingetragen werde.
Mein Lösungsweg(fehlerhaft??)
- OID Steuerfeld der ID
- bpkontakte aktuelles Formular
- bricht leider in der zeile mit dem recordsetclone mit einer typen
unverträglichkeitserklärung ab
Private Sub dataneu_Click()
Dim rst As Recordset
dim counter as integer
counter = 0
Set rst = Forms!bpkontakte.RecordsetClone
rst.movefirst
while not rst.eof
if counter < oid then
counter = oid
end if
wend
DoCmd.GoToRecord , , acNewRec
OID = counter
End sub
danke schonmal im voraus
seb
leider schreibst Du nicht, mit welcher Access-Version du arbeitest. Bei Acc
2000 und 2002 musst Du zuerst einen Verweis auf DAO setzen, im VBA-Editor
mit Extras Verweise Microsoft DAO 3.6; denn RecordsetClone liefert ein
DAO.Recordset zurück. Lösung könnte wie folgt aussehen: Ansonsten kann dein
Code aber auch nicht funktionieren, du hast eine klassische Endlosschleife
programmiert.
Viel einfacher geht es mit:
OID = DMax("HIER FELDNAME", Me.RecordSource) + 1
Gruß
Ralf
danke
seb
Versuch mal:
OID = DMax("HIER FELDNAME", Me.RecordSource,"FELDNAME < 10000") + 1
Gruß
Ralf