Recordset et Access

Résolu
badmintoneur Messages postés 8 Statut Membre -  
badmintoneur Messages postés 8 Statut Membre -
Bonjour,

Je vous remercie par avance du temps que vous voudrez bien me consacrer pour mon petit problème.
Mon soucis est que je n'arrive pas à accéder à des enregistrements autres que celui de ma première ligne dans ma table client. Lorsque j'effectue donc une recherche d'un nom dans ma base, le recordset reste vide et donc on me renvoie aucun resultat. Je vous montre le code :

Private Sub B_client_rechercher_Click()

Dim nompersonne As String
Dim requete As String
Dim cnnl As ADODB.Connection
Set cnnl = CurrentProject.Connection
Dim critere As String

Dim recordset As New ADODB.recordset
recordset.activeconnection = cnnl

If LD_client_recherche.Value = "Nom" Then
critere = CLI_nom
End If
If LD_client_recherche.Value = "Prenom" Then
critere = CLI_prenom
End If
If LD_client_recherche.Value = "Société" Then
critere = CLI_société
End If
If LD_client_recherche.Value = "Mail" Then
critere = CLI_mail
End If
If LD_client_recherche.Value = "Tel1" Then
critere = CLI_tel1
End If
If LD_client_recherche.Value = "Tel2" Then
critere = CLI_tel2
End If
If LD_client_recherche.Value = "Tel3" Then
critere = CLI_tel3
End If
If LD_client_recherche.Value = "Fax" Then
critere = CLI_fax
End If

requete = "select * from client where '" & critere & "' = '" & T_client_recherche.Value & "'"
recordset.Open requete ' execution requete

If Not recordset.EOF Then

T_client_consulter_nom.Value = recordset.Fields(1) ' remplissage des champs avec le resultat de la requête
T_client_consulter_prenom.Value = recordset.Fields(2)
T_client_consulter_société.Value = recordset.Fields(3)
T_client_consulter_adresse.Value = recordset.Fields(4)
T_client_consulter_codepostal.Value = recordset.Fields(5)
T_client_consulter_ville.Value = recordset.Fields(6)
T_client_consulter_mail.Value = recordset.Fields(7)
T_client_consulter_tel1.Value = recordset.Fields(8)
T_client_consulter_tel2.Value = recordset.Fields(9)
T_client_consulter_tel3.Value = recordset.Fields(10)
T_client_consulter_fax.Value = recordset.Fields(11)
T_client_consulter_pays.Value = recordset.Fields(12)
T_client_consulter_genre.Value = recordset.Fields(13)

Else

message = MsgBox("Aucun resultat pour cette recherche", vbExclamation, "Recherche")

End If

recordset.Close
Set recordset = Nothing
Set cnnl = Nothing

End Sub

Merci de votre aide
Configuration: Windows 7 / Safari 532.5

3 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Tu devrais essayer de faire un truc comme ça :

    Dim cnx As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim Query As String
    
    If LD_client_recherche.Value = "Nom" Then 
    critere = CLI_nom 
    End If 
    If LD_client_recherche.Value = "Prenom" Then 
    critere = CLI_prenom 
    End If 
    If LD_client_recherche.Value = "Société" Then 
    critere = CLI_société 
    End If 
    If LD_client_recherche.Value = "Mail" Then 
    critere = CLI_mail 
    End If 
    If LD_client_recherche.Value = "Tel1" Then 
    critere = CLI_tel1 
    End If 
    If LD_client_recherche.Value = "Tel2" Then 
    critere = CLI_tel2 
    End If 
    If LD_client_recherche.Value = "Tel3" Then 
    critere = CLI_tel3 
    End If 
    If LD_client_recherche.Value = "Fax" Then 
    critere = CLI_fax 
    End If 
    
    
    Query = "select * from client where '" & critere & "' = '" & T_client_recherche.Value & "'" 
    
    
    Set cnx = CurrentProject.Connection
    
    Set rst = cnx.Execute(Query)
    
    If rst.RecordCount <> 0 Then
        rst.MoveFirst
        While Not rst.EOF
            T_client_consulter_nom.Value = rst.Fields(1) ' remplissage des champs avec le resultat de la requête 
            T_client_consulter_prenom.Value = rst.Fields(2) 
            T_client_consulter_société.Value = rst.Fields(3) 
            T_client_consulter_adresse.Value = rst.Fields(4) 
            T_client_consulter_codepostal.Value = rst.Fields(5) 
            T_client_consulter_ville.Value = rst.Fields(6) 
            T_client_consulter_mail.Value = rst.Fields(7) 
            T_client_consulter_tel1.Value = rst.Fields(8) 
            T_client_consulter_tel2.Value = rst.Fields(9) 
            T_client_consulter_tel3.Value = rst.Fields(10) 
            T_client_consulter_fax.Value = rst.Fields(11) 
            T_client_consulter_pays.Value = rst.Fields(12) 
            T_client_consulter_genre.Value = rst.Fields(13) 
            rst.MoveNext
        Wend
    Else
        MsgBox "Pas d'enregistrement"
    End If
    
    rst.Close
    cnx.Close
    
    Set rst = Nothing
    Set cnx = Nothing


    De la part d'un ancien fou du volant ...
    ;o)
    1
  2. badmintoneur Messages postés 8 Statut Membre
     
    Merci beaucoup pour ton aide "fou du volant" ^^

    Mais en exécutant le code que tu m'a transmit Access me fais parvenir un message d'erreur de ce genre :

    erreur 3021, Aucun enregistrement en cours

    Pourtant ma table existe bien et mon premier enregistrement arrive toujours à apparaitre dans les textbox tandis que les autres non....
    0
  3. badmintoneur Messages postés 8 Statut Membre
     
    C'est bon j'ai résolu le probléme, c'était simplement à cause d'un accent sur la variable critére et d'oubli de double côte sur les critère CLI. Une fois enlevé tout va mieux

    Merci en tout cas de m'avoir accorder du temps
    0