Bonjour j'ai un petit problème lors de l'utilisation "répétée" du filtre par formulaire sous Access 2000
J'ai trois tables Site, Service, Risque
Dans la table site: j'ai un numéro (clé primaire) , l’abréviation, le nom et la localité du site
Dans la table service: j'ai un numéro (clé primaire) et le nom du service
Dans la table risque: j'ai un numéro de site, un numéro de service et des champs relatifs à mon risque
J'ai un premier formulaire (analyses existantes affichage) qui demande de choisir dans une liste déroutante un site et/ou un service. Ma liste déroulante site a 4 colonnes (numéro, abréviation, nom, localité) mais dans les propriétés de taille de la colonne j'ai mis 0cm pour la première afin qu'on ne voit pas le numéro. Une fois que le choix je clique sur un bouton qui lance une macro qui me permet d'ouvrir un nouveau formulaire
Même si certains vont trouver le code un peu barbare je constate que cela marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 Private Sub Commande3_Click() If IsNull(Forms![analyses existantes affichage].[Modifiable6]) Then If IsNull(Forms![analyses existantes affichage].[Modifiable8]) Then DoCmd.Close acForm, "analyses existantes affichage" DoCmd.OpenForm ("filtre LH") DoCmd.Maximize Else numerobis = Forms![analyses existantes affichage].[Modifiable8] DoCmd.Close acForm, "analyses existantes affichage" DoCmd.OpenForm ("filtre LH") Forms![filtre LH].Filter = "[num service]=" & numerobis Forms![filtre LH].FilterOn = True DoCmd.Maximize End If Else If IsNull(Forms![analyses existantes affichage].[Modifiable8]) Then numero = Forms![analyses existantes affichage].[Modifiable6] DoCmd.Close acForm, "analyses existantes affichage" DoCmd.OpenForm ("filtre LH") Forms![filtre LH].Filter = "[num site]=" & numero Forms![filtre LH].FilterOn = True DoCmd.Maximize Else numero = Forms![analyses existantes affichage].[Modifiable6] numerobis = Forms![analyses existantes affichage].[Modifiable8] DoCmd.Close acForm, "analyses existantes affichage" DoCmd.OpenForm ("filtre LH") Forms![filtre LH].Filter = "[num site]=" & numero & " AND " & "[num service]=" & numerobis Forms![filtre LH].FilterOn = True DoCmd.Maximize End If End If End Sub
Le problème apparaît si lorsque je suis sur mon second formulaire (filtre LH) ouvert et filtré grâce à ma macro.
Imaginons que sur mon premier formulaire j'ai fait un filtre via le site et que à la vue des résultats (dans le second formulaire)il y en a "trop" et que je souhaite faire un second filtre via le service ou un des champs relatifs à mon risque.
Je clique sur l’icône access « filtre par formulaire ». Lorsque je clique, la liste déroulante (4 colonnes dont la première à 0cm pour ne pas afficher le numéro) qui est le résultat de mon premier filtre via macro sur le choix du site change d’affichage et ne m’affiche plus que le numéro. Cela n’est pas sans conséquence car si je décide de laisser ce numéro tel quel et que je sélectionne un second critère pour mon filtre (en choisissant par exemple un service) et puis je clique sur le bouton raccourci Access « Appliquer le Filtre », mon filtre plante et ne trouve aucun résultat (alors qu'il devrait m'en trouver).
Pour le forcer à fonctionner je dois resélectionner dans ma liste déroulante "site" qui m'affiche un numéro, le site qui correspond.
Avez-vous une idée d'où vient l'erreur et si il y a quelque chose à faire?
Merci d'avance
Partager