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

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
Même si certains vont trouver le code un peu barbare je constate que cela marche.

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