Acces 2003 & Vb.Net : adodb, requête et cie...

Cybertronic Messages postés 7 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 6 juin 2005 - 3 juin 2005 à 18:04
Cybertronic Messages postés 7 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 6 juin 2005 - 3 juin 2005 à 18:46
Je fais quelques tests pour voir comment les connexions et les requêtes aux bases de données Acces via VB fonctionnent. J'ai un problème que je n'arrive pas à résoudre : je n'ai rien trouvé dans l'aide du Studio (MSDN) qui est au passage un sacré foutoire, alors je me tourne vers une âme charitable.
J'ai ajouté à mon projet une référence .NET à adodb.

Voici mon code :
Function Verif_util(
ByVal lgn
As
String,
ByVal mdp
As
String)
As
Boolean
Dim cnx As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rsm As New ADODB.Recordset
Dim req
As
String

cnx.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Projets\VB.Net\Access_VB\base.mdb"
cnx.Open()

If cnx.State < 1
Then
MsgBox("Impossible de se connecter à la base de données", MsgBoxStyle.Critical, "Problème critique")

Exit
Function
Else req "SELECT * FROM Utilisateur WHERE logutil '" & Trim(lgn) & "';"
rsm.Open(req, cnx, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)

If rsm.RecordCount = 1
Then 'si la clé est trouvée
If rsm.Fields("passutil")
Is mdp
Then 'alors là je suis vraiment pas sûr... vue que je suis jamais passé là
Return
True
Else
MsgBox("Mot de passe incorrect pour ce login", MsgBoxStyle.Exclamation)
cnx.Close()

Return
False
End
If
Else
MsgBox("Login inconnu", MsgBoxStyle.Exclamation)
cnx.Close()

Return
False
End
If
End
If
End
Function

La connexion est bonne mais la requête ne marche pas. Même un "Select * from Utilisateur" ne donne rien (recordcount = -1). Je n'arrive pas à resoudre ce problème. Bien sûr, la table en question contient au moins un enregistrement, et je ne me trompe pas à la saisie de la clé. Eclairez-moi svp.
A voir également:

4 réponses

cs_spirfite Messages postés 18 Date d'inscription lundi 14 juillet 2003 Statut Membre Dernière intervention 5 janvier 2010
3 juin 2005 à 18:11
req = "SELECT * FROM Utilisateur WHERE logutil = '" & Trim(lgn) & "';"
rsm.Open(req, cnx, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)



=> faut d'abord ouvrir la table avant de faire une requete...
0
Cybertronic Messages postés 7 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 6 juin 2005
3 juin 2005 à 18:26
Permettez-moi de faire les questions et les réponses puisque... CA MAAARCCCHHEEEEE !!!!

Bien bien, calmons-nous. Merci de ta participation spirfite mais ce que tu dis ne semble pas nécessaire.
En fait, j'ai juste changé un paramètre lors l'execution de ma requête :


rsm.Open(req, cnx, ADODB.CursorTypeEnum.adOpenKeyset .... et pas rsm.Open(req, cnx, ADODB.CursorTypeEnum.adOpenDynamic ....

Et puis j'ajouterai pour ceux qui pourraient avoir à lire ce message en cas de pb que pour accéder aux champs, je suis passé par :

If rsm.Fields("passutil").Value = mdp
Then
Return
True
Else ....

Bref ça marche directement avec le nom du champ de la table.
Parfait parfait, je suis content, j'avais fais ça il y a 2 bonnes années en VB6 mais je ne me souvenais plus comment j'avais fais ().
Merci, le simple fais de demander de l'aide ici me fait trouver la solution. Trop fort ce site !
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
3 juin 2005 à 18:37
moi j'aime bien mon petit composant que j'avais poster qui gérait toutes les possibilité de la base de donner, voir ma source (http://www.vbfrance.com/code.aspx?ID=25495)

elle marche numéro 1, sauf faudrais que je la mettre a jour, elle c,est amélioré beaucoup depuis le temps en gérant les thread et comapgnie


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
0
Cybertronic Messages postés 7 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 6 juin 2005
3 juin 2005 à 18:46
Cool je vais regarder ça de près. Merci dragon.
0
Rejoignez-nous