Programmation VB6

Résolu
est ce que quelqu'un peut me corriger ce bout de code svp
resultatADO.Open "SELECT motDePasse FROM employé where login = " & Text2.Text, connectionADO
j'arrive pas à faire telle requête :(
Merci!

9 réponses

  1. Bonjour,

    Essaies en faisant:
    resultatADO.Open "SELECT motDePasse FROM employé where login = ' " & Text2.Text & " ' ", connectionADO 


    ;o)
    1. wé c bien ça!

      Merci bien!!

      (Jazakom Allah khyran)
  2. j'ai une erreur là au niveau de ma boucle while que mon programme ne peut aborder,j'ai testé même en incluant un msgbox tout juste apres le do while mais ça n'a pas marché,est ce que vous pouvez m'aider svp et me preciser l'erreur

    resultatADO.Open "SELECT motDePasse FROM employé where login = ' " & Text2.Text & " ' ", connectionADO
    Do While Not (resultatADO.EOF)
    ch = resultatADO.GetString(0)
    If ch = Text4.Text Then
    form1.Show
    Me.Hide
    trouve = True
    End If
    Loop
    If trouve = False Then
    MsgBox "veuillez verifier vos paramêtres"
    1. Avant la boucle il faut faire:

      resultatADO.MoveFirst


      Et juste avant le Loop

      resultatADO.MoveNext


      Sinon tu boucles toujours sur le même enregistrement

      ;o)
      1. y'a un problème au niveau de resultatADO.MoveFirst
        voilà ma procedure:
        Private Sub Command2_Click()
        Dim form1 As New Employé
        Dim ch As String
        Dim trouve As Boolean
        trouve = False
        Dim connectionADO As New ADODB.Connection
        Dim commandeADO As New ADODB.Command
        Dim resultatADO As New ADODB.Recordset
        connectionADO.Provider = "Microsoft.jet.OLEDB.4.0"
        connectionADO.ConnectionString = "E:\projetVB1.mdb"
        connectionADO.Open
        resultatADO.Open "SELECT motDePasse FROM employé where login = ' " & Text2.Text & " ' ", connectionADO
        resultatADO.MoveFirst
        Do While Not (resultatADO.EOF)
        If resultatADO.GetString(0) = Text4.Text Then
        form1.Show
        Me.Hide
        trouve = True
        End If
        Loop
        resultatADO.MoveNext
        If trouve = False Then
        MsgBox "veuillez verifier vos paramêtres"
        Text2.Text = ""
        Text4.Text = ""
        End If
        resultatADO.Close
        connectionADO.Close
        End Sub

        Merci pour votre aide
        1. Tu es bien en VB6 ?

          Essaie avec ça:

          If resultatADO.Fields(0) = Text4.Text Then


          1. sa ne marche toujours pas
            même si je suis débutante mais j'ai programmé cette première etape de mon projet avec vb2008 et ça a marché nikel,mais apres on m'a exigé le vb6...ça marche vraiment pas avec celui là :s
            1. Ok, je vais regarder ça de plus près
          2. Voilà un code à placer dans un nouveau module. Tu renommes le module en ModBdd :

            '==========================================='
            '          Connexion ADODB                  '
            '-------------------------------------------'
            '          Module Base de données           '
            '                                           '
            ' Auteur : Polux31 - 2003                   '
            ' E-mail : ##############                   '
            '==========================================='
            
            '///////////////////////////////////////////////////////////////
            '// NE PAS OUBLIER DE COCHER DANS PROJET --> REFERENCES ...
            '// Microsoft ActiveX Data Objects x.x Library
            '///////////////////////////////////////////////////////////////
            
            Option Explicit
            
            '/////////////////////////////////'
            '// Variables globales du module
            '/////////////////////////////////'
            Private AdoCnx As ADODB.Connection
            Private CmdSql As ADODB.Command
            Private NbRs As Long
            
            '////////////////////////////////'
            '// Constantes à modifier selon le
            '// le cas d'utilisation
            '///////////////////////////////'
            Private Const BDD = "E:\projetVB1.mdb"    ' mettre le chemin de la base
            Private Const pw = ""                           ' mettre le mot de passe
            Private Const user = ""                         ' mettre le user
            
            '//////////////////////////////////////
            '// Accesseurs des variables globales
            '//////////////////////////////////////
            
            'procédure qui stocke le nombre d'enregistrement dans le recordset
            Public Sub setNbRs(ByVal nb As Integer)
                NbRs = nb
            End Sub
            
            'fonction qui retourne le nombre d'enregistrement dans le recordset
            Public Function getNbRs() As Long
                getNbRs = NbRs
            End Function
            
            
            'fonction qui retourne la connexion
            Public Function getAdoCnx() As ADODB.Connection
                getAdoCnx = AdoCnx
            End Function
            
            
            
            '//////////////////////////////////
            '// Méthodes du module
            '//////////////////////////////////
            
            'procédure de connexion à la base de donnée
            
            Public Sub ConnectBdd()
            Dim CnxString As String
            
            
            Set AdoCnx = New ADODB.Connection   'création de l'objet connexion
            
            If AdoCnx.State = adStateOpen Then  'si la base est déjà ouverte alors on sort de la procédure
                MsgBox "La connection est déjà ouverte"
                Exit Sub
            End If
            
                    '======== Ouverture Access ============'
                    '    A modifier pour autres bases      '
                    '======================================'
                    
            CnxString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                               "Data Source=" & BDD & ";" & _
                               "user ID=" & user & ";" & _
                               "password=" & pw & ";" & _
                              "Persist Security Info=False"
            
            AdoCnx.Open CnxString   'passage de la chaine de connexion
            AdoCnx.CursorLocation = adUseClient
            
            On Error Resume Next
            
                If Err <> 0 Or AdoCnx.State = adStateClosed Then    'si un erreur de connexion se produit
                    MsgBox "Connection impossible avec la base"
                    Exit Sub
                End If
            
            End Sub
            
            'fonction qui retourne un booléen.
            'Paramètres entrées : la requête, l'objet recordset
            'Passe la requête à la base de données et récupère le résultat dans le recordset
            Public Function OpenRecordset(ByVal Requete As String, ByRef rs As ADODB.Recordset) As Boolean
                
            On Error Resume Next
              
                On Error Resume Next
                rs.Open Requete, ModBdd.AdoCnx, , , adCmdText   'passage de la requête
                
                If Err > 0 Then         'en cas d'erreur la fonction retourne Faux et on sort de la fonction
                    OpenRecordset = False
                    Exit Function
                End If
                
                rs.MoveFirst        'la connexion a réussi, on se place sur le 1er enregistrement
                NbRs = rs.RecordCount   'on compte le nombre de ligne retournée
                OpenRecordset = True  'la fonction retourne Vrai
                
            End Function
            
            'fonctions Suivant, Précédent, Premier, Dernier qui retourne un booléen.
            'Paramètre entrée : l'objet recordset
            'Fonctions qui permettent de parcourir les enregistrements d'un recordset
            Public Function RSLireSuivant(ByRef rs As ADODB.Recordset) As Boolean
            
                On Error Resume Next
                rs.MoveNext
                If rs.EOF Then
                    RSLireSuivant = False
                    Exit Function
                End If
                
                If Err <> 0 Then
                    RSLireSuivant = False
                    Exit Function
                End If
                
                RSLireSuivant = True
                
            End Function
            
            Public Function RSLirePrecedent(ByRef rs As ADODB.Recordset) As Boolean
            
                On Error Resume Next
                rs.MovePrevious
                If rs.BOF Then
                    RSLirePrecedent = False
                    Exit Function
                End If
                
                If Err <> 0 Then
                    RSLirePrecedent = False
                    Exit Function
                End If
                
                RSLirePrecedent = True
                
            End Function
            
            Public Function RSLirePremier(ByRef rs As ADODB.Recordset) As Boolean
            
                On Error Resume Next
                rs.MoveFirst
                If Err <> 0 Then
                    RSLirePremier = False
                    Exit Function
                End If
                
                RSLirePremier = True
                
            End Function
            
            Public Function RSLireDernier(ByRef rs As ADODB.Recordset) As Boolean
            
                On Error Resume Next
                rs.MoveLast
                If Err <> 0 Then
                    RSLireDernier = False
                    Exit Function
                End If
                
                RSLireDernier = True
                
            End Function
            
            'procédure qui ferme la connexion à la base de données
            Public Sub CloseBdd()
                AdoCnx.Close
            End Sub
            
            'procédure qui ferme le recordset
            Public Sub CloseRs(ByRef rs As ADODB.Recordset)
                rs.Close
            End Sub


            Sur le bouton du formulaire :

            Private Sub Command2_Click() 
            Dim rst As ADODB.Recordset
            Dim query As String
            
            Set rst = New ADODB.Recordset
            
            query = "SELECT motDePasse FROM employé where login = ' " & Text2.Text &  " ' "
            ModBdd.ConnectBdd
            
            If ModBdd.OpenRecordset(query, rst) = False Then
                MsgBox "veuillez verifier vos paramêtres" , VbExclamation,"Message Système"
                Exit Sub
            End If
            
            rst.MoveFirst
            While Not rst.EOF
                If rst.Fields(0) = Text4.Text Then
                    form1.Show
                    Unload Me
                 End If 
                 rst.MoveNext
            Wend
            
            ModBdd.CloseRs(rst)
            ModBdd.CloseBdd
            
            End Sub


            Reviens ici si tu as un problème

            ;o)
            1. D'abord je vous remercie bien :) c'est tres gentil de votre part

              je trouve -plutôt c'est lui qui trouve- un problème avec cette ligne

              ModBdd.ConnectBdd
              il me demande un objet requierd
              j'ai essayé avec tout le code que vous m'avez présenté
              1. Il faut activé la référence Microsoft ActiveX Data Objects x.x Library dans Outils > références ...