Non dici se programmi in DAO o ADO e non fai vedere la stringa sql, ti posto il codice in ADO:
codice:
If RS.State = 1 Then RS.Close
RS.CursorLocation = adUseClient
RS.Open "select * from tabella", Db, adOpenKeyset, adLockOptimistic
If Not (RS.EOF) Then
Me.Text1(i).Text = Rs("CodPlu")
Me.Text8(i).Text = Rs("CodArtForn")
Me.Text2(i).Text = Rs("Descrizione")
Me.Text3(i).Text = Rs("Confezione")
Me.Text4(i).Text = Rs("peso")
Me.Text5(i).Text = Rs("pezzi")
Me.Text7(i).Text = Rs("Rich") & " "
Me.Text9(i).Text = Rs("IdCliente")
End If
Dici che il campo contatore IdCliente è un contatore (numero), ma se il record è già esistente è strano che ti ritorni false.
Per i campi null puoi o fare il controllo prima (*) di spostarlo nel textbox, oppure come nell'esempio sopra inserire uno space
(*)
codice:
If Not IsNull(RS("Rich")) Then
Me.Text7(i).Text = Rs("Rich")
Else
Me.Text7(i).Text = ""
End If