Filtrage formulaire adossé à requête [Résolu]

Signaler
Messages postés
251
Date d'inscription
mercredi 11 octobre 2006
Statut
Membre
Dernière intervention
28 mars 2021
-
Messages postés
251
Date d'inscription
mercredi 11 octobre 2006
Statut
Membre
Dernière intervention
28 mars 2021
-
Bonjour,

Mon but est filtrer instantanément un formulaire Access adossé à une requête, sur ses différents champs numériques >0
si aucune valeur dans ces champs la valeur par défaut est automatiquement 0.

J'ai un formulaire RechDepense adossé à une requête
Dans l'entête de ce formulaire
J'ai créé des champs liste déroulante indépendants avec pour unique valeur sélectionnable >0

Je renvoie la valeur sélectionnée dans les critères de recherches des champs de valeur numérique adéquats : exemple pour la colonne ChargesSyndic
[Formulaires]![RechDepense]![ChargesSyndicRech]

Si ces champs n'ont pas de valeur, la valeur par défaut est automatiquement 0.

Après mis à jour des champs de requête de l'entête du formulaire, j'ai une procédure événementielle avec le code incorporé incorporé suivant : exemple pour le champs de requête ChargesSyndicRech :
Private Sub ChargesSyndicRech_AfterUpdate()
Me.Refresh
Me.Requery
End Sub.

Mais ça ne fonctionne pas

Par contre quand je mets comme critère >0 dans la colonne du champ numérique ChargesSyndic de ma requête cela fonctionne.

Comment faire pour que ça fonctionne avec les valeur >0 de la liste déroulante les champs d'entête du formulaire RechDépense

Mon but est de pouvoir faire ressortir instantanément les différents champs qui ont une valeur >0 quand je sélectionne cette valeur dans les listes déroulantes adéquates de mon entête formulaire.

Merci par avance pour votre aide

2 réponses

Messages postés
14989
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 avril 2021
823
bonjour,
peux-tu partager la source SQL de la requête?

"ça ne fonctionne pas": que se passe-t-il, as-tu un message d'erreur?

on utilise "champ" pour le contenu d'une table, et "contrôle" pour le contenu d'un formulaire.
cela permet d'être plus clair.

que se passe-t'il si tu ouvres le formulaire, et qu'ensuite, tu ouvres la requête?
Messages postés
14989
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 avril 2021
823
@traderpierre, peux-tu donner suite, ou marquer comme résolu?
Messages postés
251
Date d'inscription
mercredi 11 octobre 2006
Statut
Membre
Dernière intervention
28 mars 2021
1
Finalement j'ai trouvé la solution et ça fonctionne super bien
dans ma requête Primaire "RechDepense1", j'ai ouverts de nouvelles colonnes correspondant aux colonnes numériques,
Pour chacune des colonnes numériques j'ai introduit une fonction iff.
Ensuite dans le formulaire de ma requête j'ai introduit un champs d'options Nommé "SelectionDesDepenses" avec des boutons radios correspondant aux différentes valeurs de mes iff donc aux différentes valeurs des colonnes ouvertes dans RechDepense1
Puis j'ai effectué une requête secondaire "RechDépense2" répliquant toutes les colonnes de la requête primaire, ensuite j'ai affecté la valeur d'option choisie sur différentes lignes aux différentes colonnes ajoutées dans ma requête .

Ci-dessous code SQL des 2 requêtes.

Requête primaire :
SELECT Dépenses.ID_Dépenses, Dépenses.[Année Concernée], Dépenses.Mois, Dépenses.[Appartement Concerné], Dépenses.[Total Syndic], Dépenses.[Syndic Imput Locatif], Dépenses.[Frais Entretien Réparation], Dépenses.[Impôts Fonciers], Dépenses.[Majoration Foncier 8%], Dépenses.[Frais Enlèvement Ordures], Dépenses.[Assurance Multirisque], Dépenses.[Assurance Emprunt], Dépenses.[Intérêts emprunts], Dépenses.[Frais gestion banque], Dépenses.[Amortissement loi de Robien], Dépenses.Divers1, Dépenses.Divers2, IIf([Syndic Imput Locatif]>0,1,0) AS SyndicLocatif, IIf([Frais Entretien Réparation]>0,2,0) AS EntrRepar, IIf([Impôts Fonciers]>0,3,0) AS Foncier, IIf([Frais Enlèvement Ordures]>0,4,0) AS Ordures, IIf([Assurance Multirisque]>0,5,0) AS AssurMulti, IIf([Assurance Emprunt]>0,6,0) AS AssurEmpr, IIf([Intérêts emprunts]>0,7,0) AS InteretEmpr, IIf([Frais gestion banque]>0,8,0) AS FraisGestBanq, IIf([Amortissement loi de Robien]>0,9,0) AS DeRobien, IIf([Divers1]>0,10,0) AS FraisDivers1, IIf([Divers2]>0,11,0) AS FraisDivers2, 12 AS [Toutes Dépenses]
FROM Dépenses
WHERE (((Dépenses.[Année Concernée]) Like "*" & [Formulaires]![RechDepense2]![AnneeDepenseRech] & "*") AND ((Dépenses.Mois) Like "*" & [Formulaires]![RechDepense2]![DepenseMoisRech] & "*") AND ((Dépenses.[Appartement Concerné]) Like "*" & [Formulaires]![RechDepense2]![DepenseAppartementRech] & "*"));


Requêtes secondaire :
SELECT RechDepense1.ID_Dépenses, RechDepense1.[Année Concernée], RechDepense1.Mois, RechDepense1.[Appartement Concerné], RechDepense1.[Total Syndic], RechDepense1.[Syndic Imput Locatif], RechDepense1.[Frais Entretien Réparation], RechDepense1.[Impôts Fonciers], RechDepense1.[Majoration Foncier 8%], RechDepense1.[Frais Enlèvement Ordures], RechDepense1.[Assurance Multirisque], RechDepense1.[Assurance Emprunt], RechDepense1.[Intérêts emprunts], RechDepense1.[Frais gestion banque], RechDepense1.[Amortissement loi de Robien], RechDepense1.Divers1, RechDepense1.Divers2, RechDepense1.SyndicLocatif, RechDepense1.EntrRepar, RechDepense1.Foncier, RechDepense1.Ordures, RechDepense1.AssurMulti, RechDepense1.AssurEmpr, RechDepense1.InteretEmpr, RechDepense1.FraisGestBanq, RechDepense1.DeRobien, RechDepense1.FraisDivers1, RechDepense1.FraisDivers2, RechDepense1.[Toutes Dépenses]
FROM RechDepense1
WHERE (((RechDepense1.SyndicLocatif)=Forms!RechDepense2!SelectionDesDepenses)) Or (((RechDepense1.EntrRepar)=Forms!RechDepense2!SelectionDesDepenses)) Or (((RechDepense1.Foncier)=Forms!RechDepense2!SelectionDesDepenses)) Or (((RechDepense1.Ordures)=Forms!RechDepense2!SelectionDesDepenses)) Or (((RechDepense1.AssurMulti)=Forms!RechDepense2!SelectionDesDepenses)) Or (((RechDepense1.AssurEmpr)=Forms!RechDepense2!SelectionDesDepenses)) Or (((RechDepense1.InteretEmpr)=Forms!RechDepense2!SelectionDesDepenses)) Or (((RechDepense1.FraisGestBanq)=Forms!RechDepense2!SelectionDesDepenses)) Or (((RechDepense1.DeRobien)=Forms!RechDepense2!SelectionDesDepenses)) Or (((RechDepense1.FraisDivers1)=Forms!RechDepense2!SelectionDesDepenses)) Or (((RechDepense1.FraisDivers2)=Forms!RechDepense2!SelectionDesDepenses)) Or (((RechDepense1.[Toutes Dépenses])=Forms!RechDepense2!SelectionDesDepenses));