Extraire les données d'un tableau access avec filtres
Résolu/Ferméyg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 - 12 août 2022 à 15:05
- Acformatxls
- Tableau croisé dynamique - Guide
- Extraire une video youtube - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Extraire son video - Guide
6 réponses
1 août 2022 à 10:28
bonjour,
si je comprends bien,
- tu as un bouton de recherche qui affiche le résultat attendu à partir des filtres du formulaire
- tu sais comment, via un bouton, faire une extraction vers Excel à partir d'une requête
- 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?
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
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 & "*" )
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:
- vide la table, via "DELETE * FROM "
- fait un "INSERT INTO" qui peuple la table à partir du code SQL créé
- 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
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.
11 août 2022 à 17:00
Parfait, peux-tu alors marquer la discussion comme résolue?
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
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
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.
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
1 août 2022 à 16:54
Tu as choisi la suggestion #3 ou la #5?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question2 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
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.
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
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"?
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
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.
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.
2 août 2022 à 18:44
Je pense que le moment est venu de te former en SQL.