Adodc.EOF

Résolu
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 - 16 août 2011 à 11:29
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre 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?

17 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 août 2011 à 12:43
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)
3
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
16 août 2011 à 13:02
Tante de mette la ligne suivate :
Adodc1.RecordSource "select * from acces where login '" & text1.text & "'"

Avant la ligne suivante :
Adodc1.Refresh
3
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
16 août 2011 à 11:34
adodc.eof
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
16 août 2011 à 11:35
Bien sur adodc est déja de type recodrdset
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
16 août 2011 à 12:01
j'ai pas compris votre remarque,vous confirmez ou bien quoi?
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
16 août 2011 à 12:10
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
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
16 août 2011 à 12:21
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é
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
16 août 2011 à 12:29
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 
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
16 août 2011 à 12:36
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?
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 août 2011 à 12:44
Oups
4u4me4us à raison, les textes doivent être encadrés de ' :
monAdoDC.RecordSource "select * from acces where login '" & text1.text & "'"
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
16 août 2011 à 12:45
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.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 août 2011 à 12:47
Il faudra surement faire un
monAdoDC.Refresh
ensuite pour lui demander d'appliquer les modifs
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
16 août 2011 à 12:48
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
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
16 août 2011 à 12:53
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
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
16 août 2011 à 13:06
vous avez tout à fait raison,j'ai oublié de la deplacer,merci beaucoup,je vais verifier
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
16 août 2011 à 13:12
ça marche bien.merci beaucoup pour tous ceux qui m'ont aidé.
MERCI INFINIMENT
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
16 août 2011 à 20:13
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
0
Rejoignez-nous