Posez votre question Signaler

Pb SQL vb access 2007

rocklivedidi - Dernière réponse le 7 janv. 2011 à 17:14
Bonjour,
J'ai écrit ce code dans VBA où:
- "conducteur" est une table avec "Email" et "Mot de passe" comme deux des champs de cette table;
- "Identification" est un formulaire avec "email" et "mdp" des zones de texte
J'aimerais que ce code me permette de vérifier que l'utilisateur est déjà inscrit. C'est un test. C'est pourquoi je ne passe pas par une requête.
Cependant, mon code ne fonctionne pas, j'ai utilisé une Msgbox pr vérifier le fonctionnement mais il me retourne "SELECT [...] [mdp]))" et non le résultat de cette fonction.
Private Sub ins_Click()
Dim base As DAO.Database
Set base = CurrentDb()
Dim sql_serial
sql_serial = "SELECT E-mail, Mot de passe FROM Conducteur WHERE (((Conducteur.[E-mail])=[Formulaires]![Identification]![email]) AND ((Conducteur.[Mot de passe])=[Formulaires]![Identification]![mdp]))"
MsgBox (sql_serial)
End Sub
Je vous remercie!
Adrienne
Lire la suite 

Pb SQL vb access 2007 »

9 réponses
Réponse
+0
moins plus
Bonjour,
Ta variable sql_serial si tu fais que l'afficher, il est normal que ça ne fasse que te l'afficher.

Il faut que tu traite cette variable.

Ca fait longtemps que j'ai pas fait de VB donc je veux pas dire de connerie sur du code...

Si j'ai le temps je te retrouve ça sur mon ordi ce soir :=)
rocklivedidi - 24 déc. 2010 à 12:42
OK, oui je serai patiente! Je pense bien que la solution est bête mais il suffit de sa pour m'empêcher de travailler sur la suite de mon projet ^^ C'est d'autant plus frustrant.
J'attends votre réponse avec impatience!

Merci
rocklive.didi- 2 janv. 2011 à 11:00
Bonjour,avez vous toujours la reponse? Merci
jopoiss- 2 janv. 2011 à 18:47
Bonjour,
c'est pas ça que tu cherches par hasard :

Dim rs As dao.Recordset
Dim requete As String

Set rs = CurrentDb.OpenRecordset(sql_serial)
If rs.RecordCount = 0 Then
     requete = "INSERT INTO ..."
Else
     requete = "UPDATE ..."
End If

DoCmd.RunSQL (requete)
Ajouter un commentaire
Réponse
+0
moins plus
j'ai retrouvé mon bout de code! *c'est que je l'ai cherché ce con -_-*

Je pense que le code jopoiss est correct et doit fonctionner ;)

Dim strsql As String = String.empty
strSQL = "SELECT count(NomAbonne) FROM Abonnes WHERE NomAbonne ='" + NomAbonne + "' "
Dim objcommand As New Oledb.OleDbCommand(strSQL, MyConnexion)

objcommand.ConnectionOpen ()
objcommand.ExecuteNonQuery()

Dim strResultat as Integer = objcommand.ExecuteScalar()

If (strResultat = 0) then 'Le nom n'est pas inséré, on eécute
...
...
End If


Si tu as besoin de commentaires je peux en fournir, mais à part le OleDb qui est fonction de ce que tu utilises comme base et driver ODBC toussah, y'a pas de difficultés particulières.

En espérant que ça t'aide et en me pardonnant du temps que cela a pris. oO

Bonne année! xD
Ajouter un commentaire
Réponse
+0
moins plus
Rebonjour,

J'ai essayé sous une autre forme, cependant je rencontre toujours un problème avec le "db.OpenRecordset(sql_serial, dbOpenDynaset)".

Voici mon code:

Private Sub valider_Click()


Dim rs As DAO.Recordset
Dim requete As String
Dim db As DAO.Database
Dim Qry As DAO.QueryDef


Set db = CurrentDb()

sql_serial = "SELECT Email, Motdepasse FROM Conducteur WHERE (((Conducteur.[Email])=[Formulaires]![Identification]![email]) AND ((Conducteur.[Motdepasse])=[Formulaires]![Identification]![mdp]))"

Set rs = db.OpenRecordset(sql_serial, dbOpenDynaset)

End Sub

Tout d'abord savez vous comment cette fonction fonctionne? Et avez vous une idée pour régler cette erreur?

Merci à tous!!


Adrienne
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Peux-tu donner plus de précisions sur l'erreur?
Ajouter un commentaire
Ce document intitulé « Pb SQL vb access 2007 » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?