Pb de vérification de login d'access à vb

stitch24 Messages postés 9 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 25 novembre 2005 - 19 nov. 2005 à 00:39
stitch24 Messages postés 9 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 25 novembre 2005 - 19 nov. 2005 à 14:37
(Débutante)
Voici ma programmation pour la vérification du login et du numéro de compte :

Option Explicit


Dim Login As String


Dim Compte As New ADODB.Recordset


Dim ResultCompte As New ADODB.Recordset


Dim Sql As New ADODB.Command


Dim BD As New ADODB.Connection


Public Function Vérification(ByVal NCompte As Integer, ByVal Login As String) As Boolean


Call OuvrirConnexion


Sql.ActiveConnection = BD


Sql.CommandText = " Select * From Comptes Where NumCompte='&NCompte&' and MotPasse='& Login &'"


Set ResultCompte = Sql.Execute


Vérification = Not Compte.EOF


Call FermerConnexion


End Function


Private Sub Cmd_Verif_Click()


Dim NCompte As Integer


NCompte = Val(Txt_NCompte.Text)


Login= Val(Txt_ Login.Text)


If Not IsNumeric(NCompte) Then


MsgBox " Veuillez rentrer un NUMERO de compte "


Else


If Vérification(NCompte, Login) Then


???


Else


MsgBox " Votre Numéro de Compte ou votre Mot de Passe est invalide "


End If


End If

End Sub
Et cela me donne toujours :
"Run-time error '-2147217913 (80040e07)':
Type de données incompatible dans l'expression du critère"
Qu'est ce qui ne vas pas ?
Pour les ??? je suis sur que ce que j'ai mis est faux mais ce sont des "cmd_" que deviennent active.
Merci beaucoup por votre aide !!!!

6 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 nov. 2005 à 01:17
salut,
j'ai à peine survolé, mais ceci me choque :

Sql.CommandText = " Select * From Comptes Where NumCompte='&NCompte&' and MotPasse='& Login &'"

devrait sans doute plutôt être
Sql.CommandText " Select * From Comptes Where NumCompte "' & NCompte & '" and MotPasse = '" & Login & "'"

++
PCPT [AFCK]
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 nov. 2005 à 01:18
et sans l'espace avant SELECT
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
19 nov. 2005 à 01:20
Salut
Je ne sais pas sur quelle ligne il te génère cette erreur, mais voilà ce qui me saute aux yeux :

Sql.CommandText = " Select * From Comptes Where NumCompte='&NCompte&' and MotPasse='& Login &'"

Tu mélanges mal la syntaxe SQL et VB :
Après NumCompte, tu ouvres bien le ' pour désigner un texte (bizarre d'ailleurs pour un Num), mais tu ne refermes pas la syntaxe VB avant de mettre le & NCompte, donc la requète SQL devient, sans les " de VB :

Select * From Comptes Where NumCompte='&NCompte&' and MotPasse='& Login &'

Il te faut donc fermer la syntaxe VB avant de fournir le contenu de la variable :

Sql.CommandText " Select * From Comptes Where NumCompte '" & NCompte & "' and MotPasse = '" & Login & "'"

Remarque, donc : Si le champ NumCompte est déclaré comme un chiffre dans ta table, il ne faut pas mettre de ' après le =. Par contre, si NCompte est un chiffre, il est plus convenable de le transformer en chaine avant de l'inclure à la chaine de la requète SQL (avec CStr), ce qui donne :
Sql.CommandText " Select * From Comptes Where NumCompte " & CStr(NCompte) & " and MotPasse = '" & Login & "'"

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)
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 nov. 2005 à 01:21
"Txt_ Login.Text" ? tu arrives à mettre des espaces dans tes noms de contrôles????!!
félicitations ;)
et tu en reprends le VAL pour une string?
je n'ai pas regardé le reste... (pour cause)
bon courage
0

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

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 nov. 2005 à 01:50
.... gros problème de refresh apparemment (site).
celà dit, je me suis également trompé dans mes première côtes. cf Jack
@+
0
stitch24 Messages postés 9 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 25 novembre 2005
19 nov. 2005 à 14:37
C'est bon j'ai réussi à arranger mes pb.
Merci pour votre aide
0
Rejoignez-nous