Recordset et Access
Résolu
badmintoneur
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
badmintoneur Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
badmintoneur Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Recordset et Access
- Acer quick access - Forum Logiciels
- Access appdata - Guide
- Exemple base de données access à télécharger gratuit - Forum Access
- Exemple base de données Access de gestion ✓ - Forum Logiciels
- Quick acces ✓ - Forum Windows
3 réponses
Bonjour,
Tu devrais essayer de faire un truc comme ça :
De la part d'un ancien fou du volant ...
;o)
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)
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....
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....