J'ai pas touver koi faire

thr_dreamer_57 Messages postés 44 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 3 novembre 2008 - 15 juil. 2005 à 10:15
cs_SyS_ Messages postés 8 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 22 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."


et merci de votre attention

4 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
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 !?
0
cs_SyS_ Messages postés 8 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 22 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....!

Salut! ;-)
0
thr_dreamer_57 Messages postés 44 Date d'inscription lundi 27 juin 2005 Statut Membre Derniè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
0
cs_SyS_ Messages postés 8 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 22 juillet 2005
20 juil. 2005 à 12:58
Ya pas de quoi ;-)
Bonne continuation !
0