tengo un problemita

cuando trato de guardar en acces desde visual basic,
el caso es que tengo una tabla x la cual conecto de la siguiente manera
Código:
Private Sub Form_Load()
conect.Provider = "Microsoft.Jet.OLEDB.4.0"
conect.ConnectionString = "inventario.mdb"
conect.Open
rec.Open "select * from productos", conect, adoenkeyset, adLockOptimistic
rec.MoveFirst
refrescar
End Sub
ok me presenta los campos pero a la hora de guradar o crear me da un problema
utilizo en un textbox estas propiedades ej.
Código:
datafield="codigo"
datasource="ado"
asi a cada campo espesifico
para el botom nuevo utilizo esto
Código:
rec.MoveLast
Text1.Text = rec!codigo + 1
rec.AddNew
limpia
botom guardar
eso son los dos mas importantes por el momento
en fin cuando le doy un nuevo la informacion se guarda encima del primer registro y se crea el segundo en blanco
y no lo puedo resolver
alguna idea
saludos