Programmation VB6

Résolu
muslim_a Messages postés 22 Statut Membre -  
Polux31 Messages postés 7219 Statut Membre -
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. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

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


    ;o)
    0
    1. muslim_a Messages postés 22 Statut Membre 7
       
      wé c bien ça!

      Merci bien!!

      (Jazakom Allah khyran)
      0
  2. muslim_a Messages postés 22 Statut Membre 7
     
    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"
    0
  3. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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)
    0
  4. muslim_a Messages postés 22 Statut Membre 7
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Tu es bien en VB6 ?

    Essaie avec ça:

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


    0
  7. muslim_a Messages postés 22 Statut Membre 7
     
    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
    0
    1. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Ok, je vais regarder ça de plus près
      0
  8. muslim_a Messages postés 22 Statut Membre 7
     
    ok,merci infinément
    0
  9. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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)
    0
  10. muslim_a Messages postés 22 Statut Membre 7
     
    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é
    0
    1. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Il faut activé la référence Microsoft ActiveX Data Objects x.x Library dans Outils > références ...
      0