Bon, on peut décomposer:
Tu choisis d'abord sur quel champ tu veux effectuer une recherche: bâtiment, technicien, type de travail...
Puis tu sélectionnes, par exemple un technicien ou un bâtiment et tu listes ce qui les concerne,
Puis tu choisis un enregistrement défini. C'est juste?
tu pourrais le faire avec trois listes
La première liste serait une liste de champs ou une liste de valeurs.
Dans les propriétés, sous l'onglet événement, sur clic, procédure événementielle tu tapes:
Dim SQL As String
SQL = "SELECT DISTINCT TaTable." & Liste1 (ou son nom, évidemment)
SQL = SQL & " FROM TaTable;"
Liste2.RowSource = SQL
Liste2.Requery
End Sub
La seconde afficherait la liste des techniciens, batiments...
Tu procèdes de la même manière en te référant à la liste2 mais tu dois cette fois créer une zone de liste multicolonnes comprenant la clé pour pouvoir ensuite pointer sur un enregistrement défini et ton code SQL ne doit plus comporter de "Distinct"
C'est plus clair? (je suis pas sûr...) Les zones de liste peuvent être créées avec l'assistant mais il faut veiller à ce que les deux premières ne comportent qu'une colonne (Access ajoute automatiquement la colonne clé avec une largeur de 0 cm (les résultats seraient donc "invisibles"))...