Adodc.EOF [Résolu]

Messages postés
74
Date d'inscription
lundi 8 août 2011
Dernière intervention
11 février 2013
- - Dernière réponse : cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
- 16 août 2011 à 20:13
salut tout le monde,je suis entrain de créer un formulaire login/mot de passe dont le contrôle de saisie des champs est basée sur une requête Select.
alors comme je suis debutante j'ai pas mis adodc.recordset.eof=false comme condition au debut,mais aprés je l'ai ajouté,malheureusement le programme n'entre pas dans la structure conditionnelle,ce qui montre que mon recordset.eof=true,ce qui est pas normal.
quelqu'un peut m'aider s'il vous plait?
Afficher la suite 

Votre réponse

17 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
3
Merci
Salut

ADODC possède une interface graphique (que ADODB n'a pas) et cette interface est déjà connectée à une base et une table.
Si ce n'est pas fait, crée cette connexion dans les propriétés de l'objet :
- ConnectionString : ça ressemble à ça :
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ma_base.MDB;Persist Security Info=False
- RecordSource : De type 1 (adCmdText) si tu dois écrire une requète de recherche et dans RecordSource, tu saisies ta requète.

Dans l'exemple que tu nous donnes, ta requète a une drôle de tête :
select * from acces where login="text1.text"
Que représente "text1.text" ?
Je suppose une TextBox de ta forme.
Dans ce cas, tu ne pourras pas fournir au RecordSource une syntaxe incluant le nom d'un objet de ton application.
Il te faut recréer ta requète au moment où cliqueras sur ton bouton de recherche en remplaçant "text1.text" par le contenu de ta TextBox :
monAdoDC.RecordSource "select * from acces where login " & text1.text

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
3
Merci
Tante de mette la ligne suivate :
Adodc1.RecordSource "select * from acces where login '" & text1.text & "'"

Avant la ligne suivante :
Adodc1.Refresh

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de 4u4me4us
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
adodc.eof
Commenter la réponse de 4u4me4us
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
Bien sur adodc est déja de type recodrdset
Commenter la réponse de 4u4me4us
Messages postés
74
Date d'inscription
lundi 8 août 2011
Dernière intervention
11 février 2013
0
Merci
j'ai pas compris votre remarque,vous confirmez ou bien quoi?
Commenter la réponse de tastastoussa
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
Oui! Sorry j'ai lu de traver
Tu dis "je l'ai ajouté,malheureusement le programme n'entre pas dans la structure conditionnelle,ce qui montre que mon recordset.eof=true,ce qui est pas normal."

1) Il faut que tu poste le requête pour que l'on puisse l'examiner.

2)Dis nous le resultat que tu souhaite avoir

3)Sois sur que ta table aye les valeurs que tu souhaites
Commenter la réponse de 4u4me4us
Messages postés
74
Date d'inscription
lundi 8 août 2011
Dernière intervention
11 février 2013
0
Merci
alors ma requête est la suivante
select * from acces where login="text1.text"

j'ai mis cette requête dansla configuration du adodc
ensuite j'ai mentionné adodc comme datasource du champ mot de passe
puis j'ai passé au code.
en fait je veux verifié que le login saisie exste dans ma table acces et si c bon je passe au second champ,celui du mot de passe pour verifié que ça correspond exactement au login deja accepté.et enfin un champ de confirmation de mot de passe.
alors dans ma structure conitionnelle j'ai commencé par le cas ou les champs son vides,ça va il me renvoie le message que je veux,mais aprés j'ai ecris
if (adodc.recordset.eof=false )then ..........
et là mon probléme qu'il n'entre pas dans cette structure.
j'espere que j'ai bien expliqué
Commenter la réponse de tastastoussa
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
Ok je vois deux erreurs
Faux :select * from acces where login="text1.text" 

Juste :select * from acces where login='"& text1.text &"'" 

Faux:if (adodc.recordset.eof=false )then 

Juse : if not adodc.efo then 
Commenter la réponse de 4u4me4us
Messages postés
74
Date d'inscription
lundi 8 août 2011
Dernière intervention
11 février 2013
0
Merci
merci pour la reponse,mais
pour la premiére ceci ne correspond pas en sql (comme je l'ai dit cette requête est ecrite dans les propriétes de adodc ou j'ai chooisi le SQL)
pour la deuxiéme je vais la changer,mais entre nous je pense que y a pas de difference.
pouvez vous me proposez une demarche pour créer mon formulaire,plutot les tests que je dois faire ,comment je peux les coder?suis_je sur le bon chemin?
Commenter la réponse de tastastoussa
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
0
Merci
Oups
4u4me4us à raison, les textes doivent être encadrés de ' :
monAdoDC.RecordSource "select * from acces where login '" & text1.text & "'"
Commenter la réponse de cs_Jack
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Dernière intervention
30 octobre 2013
0
Merci
Tu dis "pour la premiére ceci ne correspond pas en sql (comme je l'ai dit cette requête est ecrite dans les propriétes de adodc ou j'ai chooisi le SQL) "

il faut que tu postes le code que tu as acutellement. Car la c pas du tout claire.
Commenter la réponse de 4u4me4us
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
0
Merci
Il faudra surement faire un
monAdoDC.Refresh
ensuite pour lui demander d'appliquer les modifs
Commenter la réponse de cs_Jack
Messages postés
74
Date d'inscription
lundi 8 août 2011
Dernière intervention
11 février 2013
0
Merci
merci infiniment,j'ai deja fait tous ça sauf la derniére ligne,alors ou est ce que je l'ecris exactemetn car si je tape
Adodc.RecordSource "select * from acces where login '" & text1.text"'
il m'affiche un message d'erreur de syntaxe
Commenter la réponse de tastastoussa
Messages postés
74
Date d'inscription
lundi 8 août 2011
Dernière intervention
11 février 2013
0
Merci
voilà mon code:
Private Sub C1_Click()
If (Text1.Text "" Or Text2.Text "" Or Text3.Text = "") Then
MsgBox "login box or password box is empty,please fill to continue", vbInformation, ""
Text1.Text = ""
Text2.Text = ""
Else
Adodc1.Refresh
If (Not Adodc1.Recordset.EOF) Then
If ((Text2.Text Adodc1.Recordset.Fields("Mot de passe")) And (Text3.Text Text2.Text)) Then
MsgBox "Login vrai"
frmmenu.Show
frmlogin.Visible = False
ElseIf (Text2.Text = Adodc1.Recordset.Fields("Mot de passe")) Then
MsgBox ("veuillez confirmer votre mot de passe")
Text3.Text = " "
Text3.SetFocus
Else
MsgBox ("wrong password")
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus
End If
End If
End If
End Sub


merci bien de m'aider car vraiment je me sens perdue
Commenter la réponse de tastastoussa
Messages postés
74
Date d'inscription
lundi 8 août 2011
Dernière intervention
11 février 2013
0
Merci
vous avez tout à fait raison,j'ai oublié de la deplacer,merci beaucoup,je vais verifier
Commenter la réponse de tastastoussa
Messages postés
74
Date d'inscription
lundi 8 août 2011
Dernière intervention
11 février 2013
0
Merci
ça marche bien.merci beaucoup pour tous ceux qui m'ont aidé.
MERCI INFINIMENT
Commenter la réponse de tastastoussa
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
0
Merci
Attention aux injections SQL, il faut doubler systématiquement les simples guillemets (via Replace$)

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Commenter la réponse de cs_ghuysmans99

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.