Erreur 3021

cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012 - 16 mars 2009 à 11:53
Notabadcat Messages postés 5 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 16 mars 2009 - 16 mars 2009 à 14:39
merci à l'équipe
Svp aidez moi, je suis bloqué

j'ai une erreur 3021 lors de la modification d'un enregistrement.

Private Sub CmdEdit_Click()
Dim db As Database
Dim rs As Recordset




If txtIdentPat(0).Text = "" Then MsgBox ("Please fill in the Numéro first!"), vbOKOnly + vbCritical, "Error" _
: Exit Sub


If txtIdentPat(1).Text = "" Then MsgBox ("Please fill in the Nom first!"), vbOKOnly + vbCritical, "Error" _
: Exit Sub


If txtIdentPat(2).Text = "" Then MsgBox ("Please fill in the Prénom number first!"), vbOKOnly + vbCritical, "Error" _
: Exit Sub


If txtIdentPat(3).Text = "" Then MsgBox ("Please fill in the Sex number first!"), vbOKOnly + vbCritical, "Error" _
: Exit Sub


Set db = OpenDatabase(App.Path + "\Rhazi.mdb")


Set rs db.OpenRecordset("Select * from A_Pat where Nom '" & Trim(lvRecNames.SelectedItem.Text) & "'")


    
    With rs
'            While Not .EOF 'ça marche pas




            .Edit
                    rs![Num] = IIf(IsNull(txtIdentPat(0).Text), "", (txtIdentPat(0).Text))
                    rs![Nom] = IIf(IsNull(txtIdentPat(1).Text), "", (txtIdentPat(1).Text))
                    rs![Prenom] = IIf(IsNull(txtIdentPat(2).Text), "", (txtIdentPat(2).Text))
                    rs![Sexe] = IIf(IsNull(txtIdentPat(3).Text), "", (txtIdentPat(3).Text))


            .Update


'             Wend
    End With




MsgBox ("The new record is modified to the database!"), vbOKOnly + vbInformation, "Modified"
rs.Close
db.Close


Call cmdRead_Click
lvRecNames.Enabled = True
lvRecNames.SetFocus




End Sub

2 réponses

hellangel777 Messages postés 267 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 novembre 2013 1
16 mars 2009 à 12:38
Bonjour,

As-tu fais un pas à pas?
Quel est le libellé de l'erreur?
Est ce que ton recordset est bien chargé?
Ton recordset est fermé mais pas vidé.

HellAngel777
<hr />
Les machines ne font pas d'erreurs
Heureusement nous sommes humains
0
Notabadcat Messages postés 5 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 16 mars 2009
16 mars 2009 à 14:39
Salut .

1- je commence toujours par ouvrir comme ça : docmd.openrecordset("nom", dbopendynaset)
ouverture dynamique de la table qui permet de modidier les enregistrements

2- il y a un gag dans ton while...wend :
With rs
            .MoveFirst
'            While Not .EOF 'ça marche pas

            .Edit
                    rs![Num] = IIf(IsNull(txtIdentPat(0).Text), "", (txtIdentPat(0).Text))
                    rs![Nom] = IIf(IsNull(txtIdentPat(1).Text), "", (txtIdentPat(1).Text))
                    rs![Prenom] = IIf(IsNull(txtIdentPat(2).Text), "", (txtIdentPat(2).Text))
                    rs![Sexe] = IIf(IsNull(txtIdentPat(3).Text), "", (txtIdentPat(3).Text))

                     .MoveNext
            .Update

'             Wend
    End With

Mieux vaut commencer par le premier enregistrement : rs.movefirst avant le while
Nulle part tu lui dis de passer à la ligne, donc bouclage à l'infini : rajouter rs.movenext

J'espère que ça va t'aider.
0
Rejoignez-nous