Mettre à jour mon sous-formulaire Access selon les critères de recherches
lyoel
Messages postés
4
Statut
Membre
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous, je suis dans la conception d'un formulaire qui affiche les résultats d'une requête dans un sous-formulaire. Je voudrais mettre à jour mon sous-formulaire Access selon les critères de recherche, avec du code et des requêtes SQL, mais je n'ai pas pû le faire, ni avec la manipulation de la propriété SourceObject du sous-formulaire dans le code lors de l'événement LostFocus du champ recherche, ni avec la solution basée sur le recordset (Do until rs.EOF ... Loop).
J'ai vraiment besoin d'aide please.



J'ai vraiment besoin d'aide please.
Configuration: Android / Chrome 80.0.3987.119
A voir également:
- Access formulaire de recherche
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Formulaire de reclamation instagram - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
2 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour,
peux-tu tester la requête directement dans Access, sans passer pas le programme VBA?
peux-tu tester la requête directement dans Access, sans passer pas le programme VBA?
lyoel
Messages postés
4
Statut
Membre
J'ai placé la requête dans le sous-formulaire dans la propriété SourceObject lors de sa création. Mais je n'arrive plus à le modifier quand le critère de recherche change
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
1 585
>
lyoel
Messages postés
4
Statut
Membre
tester la requête en créant une requête (en récupérant le contenu de la variable req1 au moment où l'erreur se produit) et en l’exécutant, pas dans le formulaire.
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
nous pourrons mieux t'aider si tu partages le texte de ton programme, et pas une image partielle, en utilisant les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
précise aussi le type des champs utilisés dans la clause WHERE de la requête.
et partage le texte du contenu de la variable req1.
précise aussi le type des champs utilisés dans la clause WHERE de la requête.
et partage le texte du contenu de la variable req1.
Excusez mon retard, j'ai dû saisir tout le code vu que j'ai utilisé mon téléphone pour me connecter à ce forum.
Voici la portion du code lié à l'événement LostFocus du champ de recherche.
Quant aux types de données des champs de ma clause WHERE, ils sont de type numérique sauf la date.
Où le formulaire est nommé frm_historique et le sous-formulaire grid_operation

J'aimerais faire en sorte qu'au choix d'une date, seules les opérations étant effectuées à ladite date soient affichées sur le sous-formulaire grid_operation.
Voici la portion du code lié à l'événement LostFocus du champ de recherche.
Private Sub txt_recherche_LostFocus()
Dim req1 As String, req2 As String
Dim db As DAO.Database, rs As DAO.Recordset
If(txt_recherche.Value <> "") then
req1="SELECT O.date_operation AS DATES, U.login AS UTILISATEURS, T.designation_operation AS OPERATIONS, M.designation_motif AS MOTIFS, O.devise_operation AS DEVISES, O.montant_operation AS MONTANTS
FROM tab_operation AS O, tab_user AS U, tab_type_operation AS T, tab_motif AS M
WHERE U.code_user=O.user
AND T.type_operation=O.operation
AND M.type_operation=O.operation
AND date_operation= '" & txt_recherche & "'
ORDER BY O.date_operation;"
Set db= CurrentDb
Set rs= db.OpenRecordset(req1)
With rs
If .EOF Then
MsgBox "IL N'Y À EU AUCUNE OPERATION A LA DATE DU '" & txt_recherche & "' ", vbInformation, "DATE RENSEIGNEE INTROUVABLE"
Exit Sub
Else
Do Until .EOF
Forms![frm_historique].Form![grid_operation]!DATES.Value= ![date_operation] 'chaque lignes étant tout les champs correspondant aux colones du sous-formulaire
Loop
End If
End With
Else
grid_operation.Requery ' on recharge le sous-formulaire
End If
End Sub
Quant aux types de données des champs de ma clause WHERE, ils sont de type numérique sauf la date.
Où le formulaire est nommé frm_historique et le sous-formulaire grid_operation
J'aimerais faire en sorte qu'au choix d'une date, seules les opérations étant effectuées à ladite date soient affichées sur le sous-formulaire grid_operation.