Adodc.EOF [Résolu]

Signaler
Messages postés
74
Date d'inscription
lundi 8 août 2011
Statut
Membre
Dernière intervention
11 février 2013
-
cs_ghuysmans99
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
-
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?

17 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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)
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Tante de mette la ligne suivate :
Adodc1.RecordSource "select * from acces where login '" & text1.text & "'"

Avant la ligne suivante :
Adodc1.Refresh
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
adodc.eof
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Bien sur adodc est déja de type recodrdset
Messages postés
74
Date d'inscription
lundi 8 août 2011
Statut
Membre
Dernière intervention
11 février 2013
2
j'ai pas compris votre remarque,vous confirmez ou bien quoi?
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
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
Messages postés
74
Date d'inscription
lundi 8 août 2011
Statut
Membre
Dernière intervention
11 février 2013
2
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é
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
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 
Messages postés
74
Date d'inscription
lundi 8 août 2011
Statut
Membre
Dernière intervention
11 février 2013
2
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?
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Oups
4u4me4us à raison, les textes doivent être encadrés de ' :
monAdoDC.RecordSource "select * from acces where login '" & text1.text & "'"
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
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.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Il faudra surement faire un
monAdoDC.Refresh
ensuite pour lui demander d'appliquer les modifs
Messages postés
74
Date d'inscription
lundi 8 août 2011
Statut
Membre
Dernière intervention
11 février 2013
2
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
Messages postés
74
Date d'inscription
lundi 8 août 2011
Statut
Membre
Dernière intervention
11 février 2013
2
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
Messages postés
74
Date d'inscription
lundi 8 août 2011
Statut
Membre
Dernière intervention
11 février 2013
2
vous avez tout à fait raison,j'ai oublié de la deplacer,merci beaucoup,je vais verifier
Messages postés
74
Date d'inscription
lundi 8 août 2011
Statut
Membre
Dernière intervention
11 février 2013
2
ça marche bien.merci beaucoup pour tous ceux qui m'ont aidé.
MERCI INFINIMENT
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
11
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