Code:
adorecordset.AddNew
frmImeForme.txtPrvi.Text = CStr(adorecordset.RecordCount)
frmImeForme.txtDrugi.Text = ""
frmImeForme.txtTreci.Text = ""
frmImeForme.txtCetvrti.Text = ""
frmImeForme.txtPeti.Text = ""
'frmImeForme.txtSesti.Text = ""
Ovaj kod izdvoj u proceduru/funkciju, pa pozivas funkciju, a ne moras da radis copy/paste. Posto imas frmImeforme onda mozes da stavis to i u modul recimo.
Ako su ti polja boundovana, mislim da ti ne treba frmImeForme.txtDrugi.Text = "" i ostalo, posto bi polja trebalo da se sama obrisu posle addnew.
Razlog prikazivanja prvog zapisa je to sto radis Requery. Requery ce ponove povuci podatke iz baze i recordset ce biti pozicioniran na prvi zapis. Znaci Requery ti u principu ne treba. Bez Requery ostaces pozicinirana na poslednji zapis, tj. onaj koji je upravo dodat.
Sto se tice problema sa kljucem, resenje je to polje bude autonumber (ovo menjas u bazi), onda baza vodi racuna o tome i ne moze doci do dupliranja kljuca. Drugo resenje je da selektujes iz baze maksimalnu vrednost za to polje i na to dodas 1 i da ti to bude kljuc. Preporucio bih ti resenje sa autonumberom.