Extraire les données d'un tableau access avec filtres

Résolu/Fermé
Tgm45 Messages postés 24 Date d'inscription lundi 1 août 2022 Statut Membre Dernière intervention 2 novembre 2022 - 1 août 2022 à 09:48
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 12 août 2022 à 15:05

Bonjour,

Je viens solliciter votre aide car je bloque sur une fonction depuis plusieurs jours. Je travaille sur une application vba de gestion de matériels de maintenance. J'ai une base de données comprenant plus de 10k matériels. Pour se faire, j'ai une section recherche avec un grand nombre de filtres. (Voir photo).

Je souhaiterais ajouter un bouton imprimer qui lorsque je clique dessus, me permettrait d'extraire les résultats de recherche dans un excel. J'ai déjà réussi à faire sa via des requêtes car j'ai 3 autres tableaux avec filtres fixe pour les dates limites d'utilisation. Mais je n'arrive pas à adapter le code pour ce fameux tableau de recherche. 

Je suis avare de toutes suggestions, merci d'avance 

A voir également:

6 réponses

yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
1 août 2022 à 10:28

bonjour,

si je comprends bien,

  1. tu as un bouton de recherche qui affiche le résultat attendu à partir des filtres du formulaire
  2. tu sais comment, via un bouton, faire une extraction vers Excel à partir d'une requête
  3. tu voudrais faire un bouton qui extrait vers Excel à partir des filtres du formulaire

Je me demande ce qui t'empêche de créer une requête qui réutilise les choix faits dans le formulaire.  

Peux-tu partager le code derrière les deux boutons?

0
Tgm45 Messages postés 24 Date d'inscription lundi 1 août 2022 Statut Membre Dernière intervention 2 novembre 2022
1 août 2022 à 11:01

Je n'arrive pas à trouver de quoi faire une requête temporaire qui prend en compte mes filtres sélectionné.

Voici mon code du bouton recherche :

Private Sub CmdRechercher_Click()

 

' On vérifie si toutes les cases ont été bien remplies.

If ((Me.Cocher191.Value = -1) Or (Me.Cocher192.Value = -1)) And (Me.Texte19.Value = "") Then

   MsgBox "Vous n'avez pas rempli de date dans la case DateButée.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

If ((Me.Cocher191.Value = 0) And (Me.Cocher192.Value = 0)) And (Me.Texte19.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de DateButée.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

If ((Me.Cocher211.Value = -1) Or (Me.Cocher212.Value = -1)) And (Me.Texte21.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case Chronotachy.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

If ((Me.Cocher211.Value = 0) And (Me.Cocher212.Value = 0)) And (Me.Texte21.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de Chronotachy.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

If ((Me.Cocher221.Value = -1) Or (Me.Cocher222.Value = -1)) And (Me.Texte22.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case CT05.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

If ((Me.Cocher221.Value = 0) And (Me.Cocher222.Value = 0)) And (Me.Texte22.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de CT05.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

If ((Me.Cocher231.Value = -1) Or (Me.Cocher232.Value = -1)) And (Me.Texte23.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case CT06.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

If ((Me.Cocher231.Value = 0) And (Me.Cocher232.Value = 0)) And (Me.Texte23.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de CT06.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

If ((Me.Cocher241.Value = -1) Or (Me.Cocher242.Value = -1)) And (Me.Texte24.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case CT17.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

If ((Me.Cocher241.Value = 0) And (Me.Cocher242.Value = 0)) And (Me.Texte24.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de CT17.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher251.Value = -1) Or (Me.Cocher252.Value = -1)) And (Me.Texte25.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case CT18.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher251.Value = 0) And (Me.Cocher252.Value = 0)) And (Me.Texte25.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de CT18.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher261.Value = -1) Or (Me.Cocher262.Value = -1)) And (Me.Texte26.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case Echange.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher261.Value = 0) And (Me.Cocher262.Value = 0)) And (Me.Texte26.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de Echange.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher271.Value = -1) Or (Me.Cocher272.Value = -1)) And (Me.Texte27.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case Endoscopie.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher271.Value = 0) And (Me.Cocher272.Value = 0)) And (Me.Texte27.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de Endoscopie.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher281.Value = -1) Or (Me.Cocher282.Value = -1)) And (Me.Texte28.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case Etalonnage.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher281.Value = 0) And (Me.Cocher282.Value = 0)) And (Me.Texte28.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de Etalonnage.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher291.Value = -1) Or (Me.Cocher292.Value = -1)) And (Me.Texte29.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case FICT.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher291.Value = 0) And (Me.Cocher292.Value = 0)) And (Me.Texte29.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de FICT.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher301.Value = -1) Or (Me.Cocher302.Value = -1)) And (Me.Texte30.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case Harnais.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher301.Value = 0) And (Me.Cocher302.Value = 0)) And (Me.Texte30.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de Harnais.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher311.Value = -1) Or (Me.Cocher312.Value = -1)) And (Me.Texte31.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case LF.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher311.Value = 0) And (Me.Cocher312.Value = 0)) And (Me.Texte31.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de LF.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher321.Value = -1) Or (Me.Cocher322.Value = -1)) And (Me.Texte32.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case Mano.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher321.Value = 0) And (Me.Cocher322.Value = 0)) And (Me.Texte32.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de Mano.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher331.Value = -1) Or (Me.Cocher332.Value = -1)) And (Me.Texte33.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case Péremption.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher331.Value = 0) And (Me.Cocher332.Value = 0)) And (Me.Texte33.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de Péremption.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher341.Value = -1) Or (Me.Cocher342.Value = -1)) And (Me.Texte34.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case Ré-épreuve.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher341.Value = 0) And (Me.Cocher342.Value = 0)) And (Me.Texte34.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de Ré-épreuve.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher351.Value = -1) Or (Me.Cocher352.Value = -1)) And (Me.Texte35.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case VA.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher351.Value = 0) And (Me.Cocher352.Value = 0)) And (Me.Texte35.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de VA.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher361.Value = -1) Or (Me.Cocher362.Value = -1)) And (Me.Texte36.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case VGP.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher361.Value = 0) And (Me.Cocher362.Value = 0)) And (Me.Texte36.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de VGP.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher371.Value = -1) Or (Me.Cocher372.Value = -1)) And (Me.Texte37.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case Visuel.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher371.Value = 0) And (Me.Cocher372.Value = 0)) And (Me.Texte37.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de Visuel.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher381.Value = -1) Or (Me.Cocher382.Value = -1)) And (Me.Texte38.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case VP.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher381.Value = 0) And (Me.Cocher382.Value = 0)) And (Me.Texte38.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de VP.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher391.Value = -1) Or (Me.Cocher392.Value = -1)) And (Me.Texte39.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case Autre1.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher391.Value = 0) And (Me.Cocher392.Value = 0)) And (Me.Texte39.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de Autre1.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher401.Value = -1) Or (Me.Cocher402.Value = -1)) And (Me.Texte40.Value = "") Then

    MsgBox "Vous n'avez pas rempli de date dans la case Autre2.", vbOKOnly, "Erreur de saisie"

    GoTo fin

End If

 

If ((Me.Cocher401.Value = 0) And (Me.Cocher402.Value = 0)) And (Me.Texte40.Value <> "") Then

    MsgBox "Vous n'avez pas coché de case au niveau de Autre2.", vbOKOnly, "Erreur de saisie"

   GoTo fin

End If

 

' On remplit les cases Var_select, Var_orderby et Var_largeur à partir de la valeur du cadre Tri

Select Case Me.Tri.Value

 

    Case 1

        Var_select = "SELECT [Outils].[Clé_outil], [Outils].[Clé_modèle], [Modèles d'outils].[Désignation], [Modèles d'outils].[NNO], [Modèles d'outils].[RA], [Modèles d'outils].[AGE], [Outils].[SN], [Outils].[Position], [Outils].[DateButée], [Outils].[Observations]"

        Var_orderby = " ORDER BY [Modèles d'outils].[Désignation], [Modèles d'outils].[NNO], [Modèles d'outils].[RA], [Modèles d'outils].[AGE], [Outils].[SN];"

        Var_largeur = "0cm;0cm;7cm;3cm;3cm;3cm;3cm;2,2cm;2cm;0cm"

       

    Case 2

        Var_select = "SELECT [Outils].[Clé_outil], [Outils].[Clé_modèle], [Modèles d'outils].[NNO], [Modèles d'outils].[Désignation], [Modèles d'outils].[RA], [Modèles d'outils].[AGE], [Outils].[SN], [Outils].[Position], [Outils].[DateButée], [Outils].[Observations]"

        Var_orderby = " ORDER BY [Modèles d'outils].[NNO], [Modèles d'outils].[Désignation], [Modèles d'outils].[RA], [Modèles d'outils].[AGE], [Outils].[SN];"

        Var_largeur = "0cm;0cm;3cm;7cm;3cm;3cm;3cm;2,2cm;2cm;0cm"

       

    Case 3

        Var_select = "SELECT [Outils].[Clé_outil], [Outils].[Clé_modèle], [Modèles d'outils].[RA], [Modèles d'outils].[Désignation], [Modèles d'outils].[NNO], [Modèles d'outils].[AGE], [Outils].[SN], [Outils].[Position], [Outils].[DateButée], [Outils].[Observations]"

        Var_orderby = " ORDER BY [Modèles d'outils].[RA], [Modèles d'outils].[Désignation], [Modèles d'outils].[NNO], [Modèles d'outils].[AGE], [Outils].[SN];"

        Var_largeur = "0cm;0cm;3cm;7cm;3cm;3cm;3cm;2,2cm;2cm;0cm"

       

    Case 4

        Var_select = "SELECT [Outils].[Clé_outil], [Outils].[Clé_modèle], [Outils].[SN], [Modèles d'outils].[Désignation], [Modèles d'outils].[NNO], [Modèles d'outils].[RA], [Modèles d'outils].[AGE], [Outils].[Position], [Outils].[DateButée], [Outils].[Observations]"

        Var_orderby = " ORDER BY [Outils].[SN], [Modèles d'outils].[Désignation], [Modèles d'outils].[NNO], [Modèles d'outils].[RA], [Modèles d'outils].[AGE];"

        Var_largeur = "0cm;0cm;3cm;7cm;3cm;3cm;3cm;2,2cm;2cm;0cm"

       

    Case 5

        Var_select = "SELECT [Outils].[Clé_outil], [Outils].[Clé_modèle], [Outils].[Position], [Modèles d'outils].[Désignation], [Modèles d'outils].[NNO], [Modèles d'outils].[RA], [Modèles d'outils].[AGE], [Outils].[SN], [Outils].[DateButée], [Outils].[Observations]"

        Var_orderby = " ORDER BY [Outils].[SN], [Modèles d'outils].[Désignation], [Modèles d'outils].[NNO], [Modèles d'outils].[RA], [Modèles d'outils].[AGE];"

        Var_largeur = "0cm;0cm;3cm;7cm;3cm;3cm;3cm;2,2cm;2cm;0cm"

       

    Case 6

        Var_select = "SELECT [Outils].[Clé_outil], [Outils].[Clé_modèle], [Outils].[DateButée], [Modèles d'outils].[Désignation], [Modèles d'outils].[NNO], [Modèles d'outils].[RA], [Modèles d'outils].[AGE], [Outils].[SN], [Outils].[Position], [Outils].[Observations]"

        Var_orderby = " ORDER BY [Outils].[DateButée], [Modèles d'outils].[Désignation], [Modèles d'outils].[NNO], [Modèles d'outils].[RA], [Modèles d'outils].[AGE], [Outils].[SN];"

        Var_largeur = "0cm;0cm;2,2cm;7cm;3cm;3cm;3cm;3cm;2cm;0cm"

       

    Case Else

        Var_select = "SELECT [Outils].[Clé_outil], [Outils].[Clé_modèle], [Modèles d'outils].[AGE], [Modèles d'outils].[Désignation], [Modèles d'outils].[NNO], [Modèles d'outils].[RA], [Outils].[SN], [Outils].[Position], [Outils].[DateButée], [Outils].[Observations]"

        Var_orderby = " ORDER BY [Modèles d'outils].[AGE], [Modèles d'outils].[Désignation], [Modèles d'outils].[NNO], [Modèles d'outils].[RA], [Outils].[SN];"

        Var_largeur = "0cm;0cm;3cm;7cm;3cm;3cm;3cm;2,2cm;2cm;0cm"

       

End Select

 

Var_from = " FROM [Modèles d'outils]"

Var_where = ""

 

' On remplit Var_where selon les critères remplis dans les cases et selon ce que l'on a coché.

' A chaque fois, on distingue le cas où Var_where = "" : dans ce cas, il faut rajouter WHERE devant et non AND

 

If Me.Texte1.Value <> "" Then

    If Var_where = "" Then

        Var_where = " WHERE ([Modèles d'outils].[NNO] Like " & Chr(34) & Me.Texte1.Value & Chr(34) & " )"

    Else

        Var_where = Var_where & " AND ([Modèles d'outils].[NNO] Like " & Me.Texte1.Value & " )"

    End If

End If

 

If Me.Texte2.Value <> "" Then

    If Var_where = "" Then

        Var_where = " WHERE ([Modèles d'outils].[RA] Like " & Chr(34) & Me.Texte2.Value & Chr(34) & " )"

    Else

        Var_where = Var_where & " AND ([Modèles d'outils].[RA] Like " & Me.Texte2.Value & " )"

    End If

End If

 

If Me.Texte3.Value <> "" Then

    If Var_where = "" Then

        Var_where = " WHERE ([Modèles d'outils].[Désignation] Like " & Chr(34) & Me.Texte3.Value & Chr(34) & " )"

    Else

        Var_where = Var_where & " AND ([Modèles d'outils].[Désignation] Like " & Chr(34) & Me.Texte3.Value & Chr(34) & " )"

    End If

End If

 

If Me.Texte4.Value <> "" Then

    If Var_where = "" Then

        Var_where = " WHERE ([Outils].[SN] Like " & Chr(34) & Me.Texte4.Value & Chr(34) & " )"

    Else

        Var_where = Var_where & " AND ([Outils].[SN] Like " & Chr(34) & Me.Texte4.Value & Chr(34) & " )"

    End If

End If

 

If Me.Texte5.Value <> "" Then

    If Var_where = "" Then

        Var_where = " WHERE ([Outils].[Position] Like " & Chr(34) & Me.Texte5.Value & Chr(34) & " )"

    Else

        Var_where = Var_where & " AND ([Outils].[Position] Like " & Chr(34) & Me.Texte5.Value & Chr(34) & " )"

    End If

End If

 

If Me.Texte16.Value <> "" Then

    If Var_where = "" Then

        Var_where = " WHERE ([Modèles d'outils].[AGE] Like " & Chr(34) & Me.Texte16.Value & Chr(34) & " )"

    Else

        Var_where = Var_where & " AND ([Modèles d'outils].[AGE] Like " & Chr(34) & Me.Texte16.Value & Chr(34) & " )"

    End If

End If

 

If Me.Cocher11.Value = -1 Then

    If Var_where = "" Then

        Var_where = " WHERE ([Outils].[EnControle] = -1)"

    Else

        Var_where = Var_where & " AND ([Outils].[EnControle] = -1)"

    End If

End If

 

If Me.Cocher41.Value = -1 Then

    If Var_where = "" Then

        Var_where = " WHERE ([Outils].[Unserviceable] = -1)"

    Else

        Var_where = Var_where & " AND ([Outils].[Unserviceable] = -1)"

    End If

End If

   

If Me.Cocher43.Value = -1 Then

    If Var_where = "" Then

        Var_where = " WHERE ([Outils].[EnPret] = -1)"

    Else

        Var_where = Var_where & " AND ([Outils].[EnPret] = -1)"

    End If

End If

 

If Me.Cocher45.Value = -1 Then

    If Var_where = "" Then

        Var_where = " WHERE ([Outils].[EnStockage] = -1)"

    Else

        Var_where = Var_where & " AND ([Outils].[EnStockage] = -1)"

    End If

End If

 

If Me.Cocher54.Value = -1 Then

    If Var_where = "" Then

        Var_where = " WHERE ([Outils].[M69] = -1)"

    Else

        Var_where = Var_where & " AND ([Outils].[M69] = -1)"

    End If

End If

 

If Me.Cocher12.Value = -1 Then

    If Var_where = "" Then

        Var_where = " WHERE ([Outils].[EnControle] = 0 ) AND ([Outils].[Unserviceable] = 0) And ([Outils].[EnPret] = 0) AND ([Outils].[EnStockage] = 0)"

    Else

        Var_where = Var_where & " AND ([Outils].[EnControle] = 0 ) AND ([Outils].[Unserviceable] = 0) And ([Outils].[EnPret] = 0) AND ([Outils].[EnStockage] = 0)"

    End If

End If

 

If Me.Cocher20.Value = -1 Then

    If Var_where = "" Then

        Var_where = " WHERE ((IsNull([Outils].[Chronotachy]) = True) AND (IsNull([Outils].[CT05]) = True) AND (IsNull([Outils].[CT06]) = True) AND (IsNull([Outils].[CT17]) = True) AND (IsNull([Outils].[CT18]) = True) AND (IsNull([Outils].[Echange]) = True) AND (IsNull([Outils].[Endoscopie]) = True) AND (IsNull([Outils].[Etalonnage]) = True) AND (IsNull([Outils].[FICT]) = True) AND (IsNull([Outils].[Harnais]) = True) AND (IsNull([Outils].[LF]) = True) AND (IsNull([Outils].[Mano]) = True) AND (IsNull([Outils].[Péremption]) = True) AND (IsNull([Outils].[Ré-épreuve]) = True) AND (IsNull([Outils].[VA]) = True) AND (IsNull([Outils].[VGP]) = True) AND (IsNull([Outils].[Visuel]) = True) AND (IsNull([Outils].[VP]) = True) AND (IsNull([Outils].[Autre1]) = True) AND (IsNull([Outils].[Autre2]) = True))"

    Else

        Var_where = Var_where & " AND ((IsNull([Outils].[Chronotachy]) = True) AND (IsNull([Outils].[CT05]) = True) AND (IsNull([Outils].[CT06]) = True) AND (IsNull([Outils].[CT17]) = True) AND (IsNull([Outils].[CT18]) = True) AND (IsNull([Outils].[Echange]) = True) AND (IsNull([Outils].[Endoscopie]) = True) AND (IsNull([Outils].[Etalonnage]) = True) AND (IsNull([Outils].[FICT]) = True) AND (IsNull([Outils].[Harnais]) = True) AND (IsNull([Outils].[LF]) = True) AND (IsNull([Outils].[Mano]) = True) AND (IsNull([Outils].[Péremption]) = True) AND (IsNull([Outils].[Ré-épreuve]) = True) AND (IsNull([Outils].[VA]) = True) AND (IsNull([Outils].[VGP]) = True) AND (IsNull([Outils].[Visuel]) = True) AND (IsNull([Outils].[VP]) = True) AND (IsNull([Outils].[Autre1]) = True) AND (IsNull([Outils].[Autre2]) = True))"

    End If

End If

 

If Me.Cocher19.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte19.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[DateButée]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[DateButée]) = False) "

        End If

    Else

        If Me.Cocher191.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[DateButée]) <= " & Chr(35) & Me.Texte19.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[DateButée]) = " & Chr(35) & Me.Texte19.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[DateButée]) >= " & Chr(35) & Me.Texte19.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[DateButée]) >= " & Chr(35) & Me.Texte19.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher21.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte21.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[Chronotachy]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[Chronotachy]) = False) "

        End If

    Else

        If Me.Cocher211.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Chronotachy]) <= " & Chr(35) & Me.Texte21.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Chronotachy]) = " & Chr(35) & Me.Texte21.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Chronotachy]) >= " & Chr(35) & Me.Texte21.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Chronotachy]) >= " & Chr(35) & Me.Texte21.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher22.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

   ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte22.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[CT05]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[CT05]) = False) "

        End If

    Else

        If Me.Cocher221.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[CT05]) <= " & Chr(35) & Me.Texte22.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[CT05]) = " & Chr(35) & Me.Texte22.Value & Chr(35) & ")"

            End If

       Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[CT05]) >= " & Chr(35) & Me.Texte22.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[CT05]) >= " & Chr(35) & Me.Texte22.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher23.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte23.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[CT06]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[CT06]) = False) "

        End If

    Else

        If Me.Cocher231.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[CT06]) <= " & Chr(35) & Me.Texte23.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[CT06]) = " & Chr(35) & Me.Texte23.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[CT06]) >= " & Chr(35) & Me.Texte23.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[CT06]) >= " & Chr(35) & Me.Texte23.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher24.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte24.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[CT17]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[CT17]) = False) "

        End If

    Else

        If Me.Cocher241.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[CT17]) <= " & Chr(35) & Me.Texte24.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[CT17]) = " & Chr(35) & Me.Texte24.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[CT17]) >= " & Chr(35) & Me.Texte24.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[CT17]) >= " & Chr(35) & Me.Texte24.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher25.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte25.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[CT18]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[CT18]) = False) "

        End If

    Else

        If Me.Cocher251.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[CT18]) <= " & Chr(35) & Me.Texte25.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[CT18]) = " & Chr(35) & Me.Texte25.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[CT18]) >= " & Chr(35) & Me.Texte25.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[CT18]) >= " & Chr(35) & Me.Texte25.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher26.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte26.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[Echange]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[Echange]) = False) "

        End If

    Else

        If Me.Cocher261.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Echange]) <= " & Chr(35) & Me.Texte26.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Echange]) = " & Chr(35) & Me.Texte26.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Echange]) >= " & Chr(35) & Me.Texte26.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Echange]) >= " & Chr(35) & Me.Texte26.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher27.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte27.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[Endoscopie]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[Endoscopie]) = False) "

        End If

    Else

        If Me.Cocher271.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Endoscopie]) <= " & Chr(35) & Me.Texte27.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Endoscopie]) = " & Chr(35) & Me.Texte27.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Endoscopie]) >= " & Chr(35) & Me.Texte27.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Endoscopie]) >= " & Chr(35) & Me.Texte27.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher28.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte28.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[Etalonnage]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[Etalonnage]) = False) "

        End If

    Else

        If Me.Cocher281.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Etalonnage]) <= " & Chr(35) & Me.Texte28.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Etalonnage]) = " & Chr(35) & Me.Texte28.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Etalonnage]) >= " & Chr(35) & Me.Texte28.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Etalonnage]) >= " & Chr(35) & Me.Texte28.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher29.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte29.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[FICT]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[FICT]) = False) "

        End If

    Else

        If Me.Cocher291.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[FICT]) <= " & Chr(35) & Me.Texte29.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[FICT]) = " & Chr(35) & Me.Texte29.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[FICT]) >= " & Chr(35) & Me.Texte29.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[FICT]) >= " & Chr(35) & Me.Texte29.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher30.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte30.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[Harnais]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[Harnais]) = False) "

        End If

    Else

        If Me.Cocher301.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Harnais]) <= " & Chr(35) & Me.Texte30.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Harnais]) = " & Chr(35) & Me.Texte30.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Harnais]) >= " & Chr(35) & Me.Texte30.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Harnais]) >= " & Chr(35) & Me.Texte30.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher31.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte31.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[LF]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[LF]) = False) "

        End If

    Else

        If Me.Cocher311.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[LF]) <= " & Chr(35) & Me.Texte31.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[LF]) = " & Chr(35) & Me.Texte31.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[LF]) >= " & Chr(35) & Me.Texte31.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[LF]) >= " & Chr(35) & Me.Texte31.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher32.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte32.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[Mano]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[Mano]) = False) "

        End If

    Else

        If Me.Cocher321.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Mano]) <= " & Chr(35) & Me.Texte32.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Mano]) = " & Chr(35) & Me.Texte32.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Mano]) >= " & Chr(35) & Me.Texte32.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Mano]) >= " & Chr(35) & Me.Texte32.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher33.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte33.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[Péremption]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[Péremption]) = False) "

        End If

    Else

        If Me.Cocher331.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Péremption]) <= " & Chr(35) & Me.Texte33.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Péremption]) = " & Chr(35) & Me.Texte33.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Péremption]) >= " & Chr(35) & Me.Texte33.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Péremption]) >= " & Chr(35) & Me.Texte33.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher34.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte34.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[Ré-épreuve]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[Ré-épreuve]) = False) "

        End If

    Else

        If Me.Cocher341.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Ré-épreuve]) <= " & Chr(35) & Me.Texte34.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Ré-épreuve]) = " & Chr(35) & Me.Texte34.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Ré-épreuve]) >= " & Chr(35) & Me.Texte34.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Ré-épreuve]) >= " & Chr(35) & Me.Texte34.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher35.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte35.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[VA]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[VA]) = False) "

        End If

    Else

        If Me.Cocher351.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[VA]) <= " & Chr(35) & Me.Texte35.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[VA]) = " & Chr(35) & Me.Texte35.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[VA]) >= " & Chr(35) & Me.Texte35.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[VA]) >= " & Chr(35) & Me.Texte35.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher36.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte36.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[VGP]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[VGP]) = False) "

        End If

    Else

        If Me.Cocher361.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[VGP]) <= " & Chr(35) & Me.Texte36.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[VGP]) = " & Chr(35) & Me.Texte36.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[VGP]) >= " & Chr(35) & Me.Texte36.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[VGP]) >= " & Chr(35) & Me.Texte36.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher37.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte37.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[Visuel]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[Visuel]) = False) "

        End If

    Else

        If Me.Cocher371.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Visuel]) <= " & Chr(35) & Me.Texte37.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Visuel]) = " & Chr(35) & Me.Texte37.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Visuel]) >= " & Chr(35) & Me.Texte37.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Visuel]) >= " & Chr(35) & Me.Texte37.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher38.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte38.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[VP]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[VP]) = False) "

        End If

    Else

        If Me.Cocher381.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[VP]) <= " & Chr(35) & Me.Texte38.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[VP]) = " & Chr(35) & Me.Texte38.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[VP]) >= " & Chr(35) & Me.Texte38.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[VP]) >= " & Chr(35) & Me.Texte38.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher39.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte39.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[Autre1]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[Autre1]) = False) "

        End If

    Else

        If Me.Cocher391.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Autre1]) <= " & Chr(35) & Me.Texte39.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Autre1]) = " & Chr(35) & Me.Texte39.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Autre1]) >= " & Chr(35) & Me.Texte39.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Autre1]) >= " & Chr(35) & Me.Texte39.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

If Me.Cocher40.Value = -1 Then

    ' Deux cas se présentent : si une période a été remplie, on recherche les modèles qui possèdent cette période.

    ' Sinon, on recherche juste les modèles qui subissent le type de controle en question.

    If Me.Texte40.Value = "" Then

        If Var_where = "" Then

            Var_where = " WHERE (IsNull([Outils].[Autre2]) = False)"

        Else

            Var_where = Var_where & " AND (IsNull([Outils].[Autre2]) = False) "

        End If

    Else

        If Me.Cocher401.Value = -1 Then

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Autre2]) <= " & Chr(35) & Me.Texte40.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Autre2]) = " & Chr(35) & Me.Texte40.Value & Chr(35) & ")"

            End If

        Else

            If Var_where = "" Then

                Var_where = " WHERE (([Outils].[Autre2]) >= " & Chr(35) & Me.Texte40.Value & Chr(35) & ")"

            Else

                Var_where = Var_where & " AND (([Outils].[Autre2]) >= " & Chr(35) & Me.Texte40.Value & Chr(35) & ")"

            End If

        End If

    End If

End If

 

' On met à jour le cadre des résultats et on va à l'onglet résultats de la recherche

Affichage_resultats

DoCmd.GoToControl "Résultats de la recherche"

fin:

End Sub

 

Mon code pour afficher les résultats :

Private Sub Affichage_resultats()

 

' On met à jour les données dans le cadre des résultats.

Me.CadreVisualisation.RowSource = Var_select & Var_from & Var_innerjoin & Var_where & Var_orderby

Me.CadreVisualisation.ColumnWidths = Var_largeur

 

If Me.CadreVisualisation.ListCount - 1 <= 0 Then

 

Me.Etiquette41.Caption = "0 outil trouvé."

 

Else

 

Me.Etiquette41.Caption = Me.CadreVisualisation.ListCount - 1 & " outil(s) trouvé(s)."

 

End If

 

End Sub

Et mon code pour extraire en Excel qui fonctionne avec la requête fixe:

Private Sub Imprimer_0j_Click()

 

'permet d'extraire les données du tableau de DLU dépassé au format excel

Dim xls As Excel.Application

Dim adresse As Variant

 

NomUtil = Environ("username")

adresse = "C:\Users\" & NomUtil & "\Desktop\DLU0J.xls"

 

    DoCmd.OutputTo acOutputQuery, "Req_0J", acFormatXLS, adresse, True

   

    Exit Sub

 

End Sub

En espérant que sa t'aide

0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
1 août 2022 à 11:31

Il ne faut pas faire une requête temporaire qui prend en compte les filtres sélectionnés, il faut faire une requête permanente qui utilise les valeurs présentes dans le formulaire.
Par exemple, pour le champ NNO, la requête contiendra, dans le WHERE:

([Formulaires]![formulaire123]!Texte1 = "" 
OR [Modèles d'outils].[NNO] Like "*" & [Formulaires]![formulaire123]!Texte1 & "*" )
0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
Modifié le 1 août 2022 à 11:48

Une autre possibilité, que tu préféreras peut-être parce qu'elle te permet d'utiliser la requête SQL dynamique que tu crées en VBA à partir du formulaire, c'est de passer par une table intermédiaire.

A chaque export, le code VBA:

  1. vide la table, via "DELETE * FROM "
  2. fait un "INSERT INTO" qui peuple la table à partir du code SQL créé
  3. fait l'export

Pour executer une requête SQL en VBA: https://docs.microsoft.com/fr-fr/office/client-developer/access/desktop-database-reference/database-execute-method-dao

0
Tgm45 Messages postés 24 Date d'inscription lundi 1 août 2022 Statut Membre Dernière intervention 2 novembre 2022 > yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
11 août 2022 à 16:37

Bonjour,

Je reviens vers toi après une petite semaine de pause sur l'app, j'ai appliqué la solution #3 et cela fonctionne nickel. Je te remercie, j'ai repris de 0 car je commençais à me faire des nœuds au cerveau alors que c'était tout con comme solution. Encore merci pour ton aide.

0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > Tgm45 Messages postés 24 Date d'inscription lundi 1 août 2022 Statut Membre Dernière intervention 2 novembre 2022
11 août 2022 à 17:00

Parfait, peux-tu alors marquer la discussion comme résolue?

0
Tgm45 Messages postés 24 Date d'inscription lundi 1 août 2022 Statut Membre Dernière intervention 2 novembre 2022 > yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
12 août 2022 à 13:48

Juste avant, tu serais comment rajouter les cases à cocher dans les filtres sql car du coup j'ai tenté sa:

Formulaires]![formulaire123]! Cocher1 = "" 
OR [Modèles d'outils].[NNO] Like "*" & [Formulaires]![formulaire123]!Cocher1 & "*" )

Mais sans succès, il m'affiche des résultats aléatoire qui correspondent pas du tout

0
Tgm45 Messages postés 24 Date d'inscription lundi 1 août 2022 Statut Membre Dernière intervention 2 novembre 2022
1 août 2022 à 11:44

Le problème est que j'ai tellement de filtres disponible et certains sont cumulables que sa va me créer beaucoup de requête c'est pour sa, l'idéal c'est que sa me créer la requête, extrait le tout sur excel et ensuite supprime la requête 

0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
1 août 2022 à 11:51

Non, tu dois pouvoir tout faire via une seule requête. Regarde bien ce que je suggère pour NNO: tu peux cumuler cela avec des "AND" pour chacun des autres filtres, et le cumul fonctionnera bien.

0
Tgm45 Messages postés 24 Date d'inscription lundi 1 août 2022 Statut Membre Dernière intervention 2 novembre 2022
1 août 2022 à 16:27

Après différents test, je suis complètement largué sur le code SQL, si tu peux me détailler un peu la procédure stp sa serait top

0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
1 août 2022 à 16:54

Tu as choisi la suggestion #3 ou la #5?

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tgm45 Messages postés 24 Date d'inscription lundi 1 août 2022 Statut Membre Dernière intervention 2 novembre 2022
2 août 2022 à 14:01

J'ai choisi la #5, je viens de voir qu'un code sql était déjà implémenter dans mon tableau (Car l'app n'est pas de moi, je la reprends juste car pas mi à jour depuis 2012 et je doit la réadapter au système d'aujourd'hui). Voici le code sql du tableau qui génère une requête :

SELECT Outils.Clé_outil, Outils.Clé_modèle, [Modèles d'outils].Désignation, [Modèles d'outils].NNO, [Modèles d'outils].RA, Outils.SN, Outils.Position, Outils.DateButée, Outils.Observations

FROM [Modèles d'outils] INNER JOIN Outils ON [Modèles d'outils].Clé_modèle = Outils.Clé_modèle

WHERE (((Outils.SN) Like "6302*"))

ORDER BY [Modèles d'outils].Désignation, [Modèles d'outils].NNO, [Modèles d'outils].RA, Outils.SN;

Et du coup j'ai essayé d'adapter mon code d'extraction mais sans succès. Pour le moment sa donne sa: 

Private Sub Commande56_Click()

 

'permet d'extraire les données du tableau de DLU dépassé au format excel

Dim xls As Excel.Application

Dim adresse As Variant

 

NomUtil = Environ("username")

adresse = "C:\Users\" & NomUtil & "\Desktop\ResultRecherche.xls"

 

    DoCmd.OutputTo acOutputQuery, (Like "6302*"), acFormatXLS, adresse, True

   

    Exit Sub

 

End Sub
0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
Modifié le 2 août 2022 à 16:03

As-tu compris la suggestion #5?
Je ne vois pas où tu en tiens compte dans ce que tu montres en #9.

0
Tgm45 Messages postés 24 Date d'inscription lundi 1 août 2022 Statut Membre Dernière intervention 2 novembre 2022
2 août 2022 à 16:13

Je t'avoue que les requêtes sql je ne maîtrise pas du tout et dans le #9 je me suis rendu compte que y avait un générateur de requête sql associé à mon tableau de résultats donc j'ai essayé d'adapter mon code pour extraire les infos par rapport à sa mais sans succès.

Je me dit étant donné qu'il me génère une requête pour récupérer les résultats de recherche, je pourrais récupérer le nom de cette requête pour extraire les résultats (comme j'ai fait pour 3 tableau avec mes requêtes à filtres fixe) mais dans mes tables je ne vois pas la requête générer et je ne sais donc pas ou je peux trouver le nom de la requête générer qui à l'air d'être temporaire 

0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
2 août 2022 à 16:27

As-tu compris la suggestion, en #5, d'utiliser la méthode Execute?

Sais-tu ce que fait un "INSERT INTO"?

0
Tgm45 Messages postés 24 Date d'inscription lundi 1 août 2022 Statut Membre Dernière intervention 2 novembre 2022 > yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
2 août 2022 à 16:46

Je vois pas vraiment comment faire, si j'ai bien compris le insert into, sa permet de mettre des valeurs dans une table mais en cherchant des bout de code pour essayer de faire se que je veux, je n'ai pas réussi et j'ai pas bien compris le fonctionnement de tout sa

0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > Tgm45 Messages postés 24 Date d'inscription lundi 1 août 2022 Statut Membre Dernière intervention 2 novembre 2022
2 août 2022 à 18:28

Dans quel contexte fais-tu ce travail?

J'ai l'iimpression que tu n'as pas été formé pour pouvoir faire ce travail.

0
Tgm45 Messages postés 24 Date d'inscription lundi 1 août 2022 Statut Membre Dernière intervention 2 novembre 2022 > yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
2 août 2022 à 18:43

J'ai reçu aucune formation, sa fait 3 mois environ que je me suis mi au vba sans aucune connaissance en code. L'application qu'on utilise sous Access date de 2001 et la dernière maj de 2012 et comme j'étais le seul dans l'atelier à gérer facilement les outils informatiques, je me suis mi au vba afin de mettre à jour cette app qui ne répondait pu correctement à nos besoins. Il s'agit donc d'une tâche annexe qui me prend beaucoup de temps donc mes chefs mon désigné la dessus afin que je passe la majeur partie de mon temps à cette tâche.

0
yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > Tgm45 Messages postés 24 Date d'inscription lundi 1 août 2022 Statut Membre Dernière intervention 2 novembre 2022
2 août 2022 à 18:44

Je pense que le moment est venu de te former en SQL.

0