VBA excel - gestion des users et passwords MYSQL

Signaler
Messages postés
10
Date d'inscription
mardi 23 février 2010
Statut
Membre
Dernière intervention
4 mars 2010
-
Messages postés
10
Date d'inscription
mardi 23 février 2010
Statut
Membre
Dernière intervention
4 mars 2010
-
Bonjour à tous et à toutes,

Je code en Vba excel, et, étant novice en Vba, j'ai pas mal de difficultés (j'ai déjà posé quelques questions sur ce forum).

Mes formulaires sont connectés a une base de donnée distante sous SQL server 2005, la connection fonctionne parfaitement.

En ce moment je suis sur un userform nommé "identification" qui permet aux utilisateurs de se connecter en remplissant 2 textbox et en appuyant sur un bouton, pour ma base de test j'ai crée quelques logins, des mdp et surtout des services dans une table nommée "gmt_users", ce que je voudrais faire :

Lorsque un user du service MIP par exemple veut se connecter, il entre : Son login (dans mon exemple utilisateur1), son mdp (dans mon exemple : abc ) et si le login et le mdp correspondent, une requete recherche le service associé au login et en ouvre l'userform (dans ce cas "form_be"). Je vous met le code ci-dessous afin que vous compreniez mieux le principe :

------------------------------------------------------------------------
Private Sub CommandButton1_Click()

Set rs = New ADODB.Recordset
Module1.conNect
Dim service As String
Dim testlog As String
Dim mpd As String


If TextBox1.Value <> "" And TextBox2.Value <> "" Then
'verifier si les donnees inscrites sont bien dans la table
rs.Open "Select COUNT(*) from gmt_users where LOGIN = '" & TextBox1.Value & "'", cN
testlog = rs.Fields.Count
rs.Close


If testlog = 1 Then
'verifier si les donnees inscrites sont bien dans la table
rs.Open "Select COUNT(*) from gmt_users where MDP = '" & TextBox2.Value & "'", cN
MDP = rs.Fields.Count
rs.Close
End If

If testlog 1 And MDP 1 Then

'C'est là que sa pose problème, voir détails apres le code
rs.Open "Select SERVICE from gmt_users where LOGIN = '" & TextBox1.Value & "' ", cN
service = rs.Fields("SERVICE").Value 'pour inserer le résultat de la requete dans la variable service

MsgBox " '" & service & "' " 'pour vérifer la valeur de la variable service Select Case service
Case "mip" 'service mip identification.Hide
choix_be.Show 'service mip Case "methodes" 'service methodes
identification.Hide
choix_methodes.Show 'service methodes
Case "achats" 'services achats
identification.Hide
choix_achats.Show 'service achats
Case "verif_achats" 'service verif_achats
identification.Hide
choix_verif_achats.Show 'service verif_achats
End Select

Else: MsgBox "Les informations entrées ne sont pas correctes."
End If
End If

End Sub

----------------------------------------------------------------------

Voilà la bête, je pense que c'est à peu près bon (du moins je l'espere) en revanche mon probléme est que cette partie de code :
----------------------------------------------------------------------
rs.Open "Select SERVICE from gmt_users where LOGIN = '" & TextBox1.Value & "' ", cN
service = rs.Fields("SERVICE").Value
----------------------------------------------------------------------

ne fonctionne pas puisque j'ai toujours l'erreur d'execution '3021' BOF ou EOF est égal à True ou l'enregistrement actuel a été supprimé. L'opération demandée nécessite un enregistrement actuel.

Ma table gmt_users est remplie correctement je ne comprend pas ce bug.

Voilà désolé de ce message à rallonge j'ai du mal à m'exprimer correctement j'espere que vous comprendrez le principe et que vous pourrez m'aider à résoudre ce probléme afin que mes users puissent se connecter correcement

Merci d'avance pour votre attention.

1 réponse

Messages postés
10
Date d'inscription
mardi 23 février 2010
Statut
Membre
Dernière intervention
4 mars 2010

Correction : Le code fonctionne lorsque l'on rentre le bon login et le bon mot de passe, en revanche si l'on met un mauvais mot de passe et/ou un mauvais login alors l'erreur apparait alors que je voudrais que le message : MsgBox "Les informations entrées ne sont pas correctes."
apparaisse.

Désolé pour la rectification et merci d'avance