thr_dreamer_57
Messages postés44Date d'inscriptionlundi 27 juin 2005StatutMembreDernière intervention 3 novembre 2008
-
15 juil. 2005 à 10:15
cs_SyS_
Messages postés8Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention22 juillet 2005
-
20 juil. 2005 à 12:58
bonjour
je doit tout dabord remercier tout le monde pour votre aide.
j'utilise une connexion ODBC a une base de donnée(access) et une liaison en ADO (je crois pas ke c le mot technique ki lui convient) et mon objectif est tout simpement d'ajouter un enregistrement dans ma base de donnée et pour ce fire jé écrit le code suivant:
Private Sub Command1_Click()
Dim test As Boolean
test = False
Do While Not ((Me.Adodc2.Recordset.Fields("password").Value Text2.Text) Or (Me.Adodc2.Recordset.EOF True))
Me.Adodc2.Recordset.MoveNext
Loop
If (Adodc2.Recordset.EOF = True) Then 'pour vérifier s'il existe le même compte
test = True
End If
If ((Me.Text1.Text "") Or (Me.Text2.Text "") Or (Me.Text3.Text = "") Or Not (Me.Text2.Text = Me.Text3.Text) Or (test = False)) Then
MsgBox ("VEUILLIER VERFIER VOS INFORMATIONS")
Me.Text1.Text = ""
Me.Text2.Text = ""
Me.Text3.Text = ""
Else
Adodc2.Recordset.AddNew
Text4.Text = Text1.Text
Text5.Text = Text2.Text
Adodc2.Recordset.Update
End If
End Sub
j'explique un peut ce code en fait il sert a ajouter des comptes pour accéder en modification a la base jé déja relier les champs désignés a des textbox et jé utiliser une boucle WHILE pour vérifier si ce compte est déja inscrit dns la base jé ajouter aussi kelke test pour la validation des mots de passe.
le message d'erreur ke j'ai obtenu lors du débogage est le suivant:
"Erreur d'exécution '3021':
Eiteher BOF or EOF is true, or the current record has been deleted.
Requested operation requires a current record."
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 15 juil. 2005 à 21:22
Salut, perso, je n'utilise pas les datacontrol mais bon, à quel endroit de ton code se situe le msg d'erreur ?
Le msg voudrait dire que tu essaies de lire ou de modifier un enreg après une fin de recordset ou avant un début de recordset.
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
cs_SyS_
Messages postés8Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention22 juillet 2005 18 juil. 2005 à 08:26
Salut,
ton problème provient dans un premier temps de ta boucle "While Not" :
"Me.adodc2.recordset.EOF = true"
signifie que tu es arrivé en fin de fichier, en d'autre terme que tu n'as plus de ligne à lire. ("Eiteher BOF or EOF is true", au début du message d'erreur...)
Donc dans la vérification que tu effectue, si jamais le Mot de Passe saisi dans "text2" n'existe pas déjà, tu prévois de sortir de la boucle à la seule condition que tu ai atteint la fin de fichier, ce qui provoque le message d'erreur que tu as obtenu.
Il aurait fallu que tu fasse une boucle telle que :
While ((Me.Adodc2.Recordset.Fields("password").Value <> Text2.Text) Or (Me.Adodc2.Recordset.EOF False)) 'recordset.EOF false => la ligne contient des informations
Me.adodc2.recordset.movenext
Wend
Autrement , pour vérifier que le compte existe déjà, tu écriras plutôt :
if Me.Adodc2.Recordset.Fields("Nom_Du_Compte").Value = Text1.Text Then ...
Que tu inséreras dans ce même "While" , par exemple
Et une dernière chose, si tu veux enregistrer tes nouvelles informations, effectue la maneuvre inverse de celle du départ :
Adodc2.Recordset.AddNew
(Me.)Adodc2.Recordset("Nom_Du_Compte").value = Text1.Text
(Me.)Adodc2.Recordset("Mot_De_Passe").value = Text2.Text
Adodc2.Recordset.Update
Voilà, j'espère que mes explications ont été assez claires et qu'elles te seront utiles....!
thr_dreamer_57
Messages postés44Date d'inscriptionlundi 27 juin 2005StatutMembreDernière intervention 3 novembre 2008 20 juil. 2005 à 09:30
merci bcp sys votre solution est parfitement correcte
et jé déja trouver une solution ki ressemble bcp à la tienne mais le problème est exctement dans la boucle while
merci encore une fois
et je te souhaite bon courage