J'aimerai trouver un moyen de faire une recherche Multiple
- depuis un unique formulaire
- depuis plusieurs listes d=E9roulantes (en contr=F4le source=20
je r=E9cup=E8re les donn=E9es stock=E9es dans la table)
- qui en selectionnant les valeurs des listes d=E9roulantes
construit une requ=EAte =E0 exporter sous excel
Auriez-vous une id=E9e de la mani=E8re de s'y prendre ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Piotr
Bonjour,
Cela n'est pas très comliqué, mais c'est un peu délicat à programmer. J'opérerais comme cela :
- Tu créés une requête ("Ma_Requete" par exemple) qui sélectionne par défaut toute la table ("Select * from Ma_Table"). - Tu créés un formulaire ("Critères_Recherche" par exemple) avec tes contrôles listes déroulantes qui servent de critère : Liste1, Liste2, .... - Tu créés une fonction (dans le module du formulaire ou dans un module global) qui contruit la requête SQL correspondant aux critères (exemple de fonction à suivre). - Tu créés un bouton qui exécute la fonction et exporte la requête "Ma_Requete" au format Excel.
Tu peux également afficher le résultat intermédiaire de chaque modification de critères dans un sous-formulaire ("Mon_Resultat"). Dans ce cas, pour chaque contrôle "critère", sur l'événement "MAJ", tu dois exécuter la fonction et recalculer le sous-formulaire ("Me.Mon_Resultat.Requery").
Exemple de fonction : Function BuildSQLString() As Boolean
Dim strSQL As String Dim strSELECT As String Dim strFROM As String Dim strWHERE As String
strSELECT = "Ma_Table.*" strFROM = "Ma_Table"
If Forms![Critères_recherche].Liste1 <> "" Then strWHERE = strWHERE & " AND ((Ma_Table.ChampListe1) Like [Formulaires]![Critères_recherche]![Liste1] & ""*"")" End If If Forms![Critères_recherche].Liste2 <> "" Then strWHERE = strWHERE & " AND ((Ma_Table.ChampListe2) Like [Formulaires]![Critères_recherche]![Liste2] & ""*"")" End If '... etc pour tous les critères
strSQL = "SELECT " & strSELECT strSQL = strSQL & " FROM " & strFROM If strWHERE <> "" Then strSQL = strSQL & " WHERE " & Mid$(strWHERE, 6) strSQL = strSQL & " ORDER BY Ma_Table.Champ1"
CurrentDb.QueryDefs("Ma_Requete").SQL = strSQL
BuildSQLString = True
End Function
Cela te convient-il ?
Pierre.
"Laetitia" a écrit dans le message de news:06b501c3ceb9$cab72e20$ Bonjour,
J'aimerai trouver un moyen de faire une recherche Multiple - depuis un unique formulaire - depuis plusieurs listes déroulantes (en contrôle source je récupère les données stockées dans la table)
- qui en selectionnant les valeurs des listes déroulantes construit une requête à exporter sous excel
Auriez-vous une idée de la manière de s'y prendre ?
Merci par avance
Bonjour,
Cela n'est pas très comliqué, mais c'est un peu délicat à programmer.
J'opérerais comme cela :
- Tu créés une requête ("Ma_Requete" par exemple) qui sélectionne par défaut
toute la table ("Select * from Ma_Table").
- Tu créés un formulaire ("Critères_Recherche" par exemple) avec tes
contrôles listes déroulantes qui servent de critère : Liste1, Liste2, ....
- Tu créés une fonction (dans le module du formulaire ou dans un module
global) qui contruit la requête SQL correspondant aux critères (exemple de
fonction à suivre).
- Tu créés un bouton qui exécute la fonction et exporte la requête
"Ma_Requete" au format Excel.
Tu peux également afficher le résultat intermédiaire de chaque modification
de critères dans un sous-formulaire ("Mon_Resultat"). Dans ce cas, pour
chaque contrôle "critère", sur l'événement "MAJ", tu dois exécuter la
fonction et recalculer le sous-formulaire ("Me.Mon_Resultat.Requery").
Exemple de fonction :
Function BuildSQLString() As Boolean
Dim strSQL As String
Dim strSELECT As String
Dim strFROM As String
Dim strWHERE As String
strSELECT = "Ma_Table.*"
strFROM = "Ma_Table"
If Forms![Critères_recherche].Liste1 <> "" Then
strWHERE = strWHERE & " AND ((Ma_Table.ChampListe1) Like
[Formulaires]![Critères_recherche]![Liste1] & ""*"")"
End If
If Forms![Critères_recherche].Liste2 <> "" Then
strWHERE = strWHERE & " AND ((Ma_Table.ChampListe2) Like
[Formulaires]![Critères_recherche]![Liste2] & ""*"")"
End If
'... etc pour tous les critères
strSQL = "SELECT " & strSELECT
strSQL = strSQL & " FROM " & strFROM
If strWHERE <> "" Then strSQL = strSQL & " WHERE " & Mid$(strWHERE, 6)
strSQL = strSQL & " ORDER BY Ma_Table.Champ1"
CurrentDb.QueryDefs("Ma_Requete").SQL = strSQL
BuildSQLString = True
End Function
Cela te convient-il ?
Pierre.
"Laetitia" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:06b501c3ceb9$cab72e20$a501280a@phx.gbl...
Bonjour,
J'aimerai trouver un moyen de faire une recherche Multiple
- depuis un unique formulaire
- depuis plusieurs listes déroulantes (en contrôle source
je récupère les données stockées dans la table)
- qui en selectionnant les valeurs des listes déroulantes
construit une requête à exporter sous excel
Auriez-vous une idée de la manière de s'y prendre ?
Cela n'est pas très comliqué, mais c'est un peu délicat à programmer. J'opérerais comme cela :
- Tu créés une requête ("Ma_Requete" par exemple) qui sélectionne par défaut toute la table ("Select * from Ma_Table"). - Tu créés un formulaire ("Critères_Recherche" par exemple) avec tes contrôles listes déroulantes qui servent de critère : Liste1, Liste2, .... - Tu créés une fonction (dans le module du formulaire ou dans un module global) qui contruit la requête SQL correspondant aux critères (exemple de fonction à suivre). - Tu créés un bouton qui exécute la fonction et exporte la requête "Ma_Requete" au format Excel.
Tu peux également afficher le résultat intermédiaire de chaque modification de critères dans un sous-formulaire ("Mon_Resultat"). Dans ce cas, pour chaque contrôle "critère", sur l'événement "MAJ", tu dois exécuter la fonction et recalculer le sous-formulaire ("Me.Mon_Resultat.Requery").
Exemple de fonction : Function BuildSQLString() As Boolean
Dim strSQL As String Dim strSELECT As String Dim strFROM As String Dim strWHERE As String
strSELECT = "Ma_Table.*" strFROM = "Ma_Table"
If Forms![Critères_recherche].Liste1 <> "" Then strWHERE = strWHERE & " AND ((Ma_Table.ChampListe1) Like [Formulaires]![Critères_recherche]![Liste1] & ""*"")" End If If Forms![Critères_recherche].Liste2 <> "" Then strWHERE = strWHERE & " AND ((Ma_Table.ChampListe2) Like [Formulaires]![Critères_recherche]![Liste2] & ""*"")" End If '... etc pour tous les critères
strSQL = "SELECT " & strSELECT strSQL = strSQL & " FROM " & strFROM If strWHERE <> "" Then strSQL = strSQL & " WHERE " & Mid$(strWHERE, 6) strSQL = strSQL & " ORDER BY Ma_Table.Champ1"
CurrentDb.QueryDefs("Ma_Requete").SQL = strSQL
BuildSQLString = True
End Function
Cela te convient-il ?
Pierre.
"Laetitia" a écrit dans le message de news:06b501c3ceb9$cab72e20$ Bonjour,
J'aimerai trouver un moyen de faire une recherche Multiple - depuis un unique formulaire - depuis plusieurs listes déroulantes (en contrôle source je récupère les données stockées dans la table)
- qui en selectionnant les valeurs des listes déroulantes construit une requête à exporter sous excel
Auriez-vous une idée de la manière de s'y prendre ?
Merci par avance
Laetitia
Oui, merci Pierre, je pense pouvoir m'en sortir avec ton exemple.
Salutations
BONNE FETES ET BON NOUVEL AN
Laetitia
-----Message d'origine----- Bonjour,
Cela n'est pas très comliqué, mais c'est un peu délicat à programmer.
J'opérerais comme cela :
- Tu créés une requête ("Ma_Requete" par exemple) qui sélectionne par défaut
toute la table ("Select * from Ma_Table"). - Tu créés un formulaire ("Critères_Recherche" par exemple) avec tes
contrôles listes déroulantes qui servent de critère : Liste1, Liste2, ....
- Tu créés une fonction (dans le module du formulaire ou dans un module
global) qui contruit la requête SQL correspondant aux critères (exemple de
fonction à suivre). - Tu créés un bouton qui exécute la fonction et exporte la requête
"Ma_Requete" au format Excel.
Tu peux également afficher le résultat intermédiaire de chaque modification
de critères dans un sous-formulaire ("Mon_Resultat"). Dans ce cas, pour
chaque contrôle "critère", sur l'événement "MAJ", tu dois exécuter la
fonction et recalculer le sous-formulaire ("Me.Mon_Resultat.Requery").
Exemple de fonction : Function BuildSQLString() As Boolean
Dim strSQL As String Dim strSELECT As String Dim strFROM As String Dim strWHERE As String
strSELECT = "Ma_Table.*" strFROM = "Ma_Table"
If Forms![Critères_recherche].Liste1 <> "" Then strWHERE = strWHERE & " AND ((Ma_Table.ChampListe1) Like
[Formulaires]![Critères_recherche]![Liste1] & ""*"")" End If If Forms![Critères_recherche].Liste2 <> "" Then strWHERE = strWHERE & " AND ((Ma_Table.ChampListe2) Like
[Formulaires]![Critères_recherche]![Liste2] & ""*"")" End If '... etc pour tous les critères
strSQL = "SELECT " & strSELECT strSQL = strSQL & " FROM " & strFROM If strWHERE <> "" Then strSQL = strSQL & " WHERE " & Mid$(strWHERE, 6)
strSQL = strSQL & " ORDER BY Ma_Table.Champ1"
CurrentDb.QueryDefs("Ma_Requete").SQL = strSQL
BuildSQLString = True
End Function
Cela te convient-il ?
Pierre.
"Laetitia" a écrit dans le message de
news:06b501c3ceb9$cab72e20$ Bonjour,
J'aimerai trouver un moyen de faire une recherche Multiple
- depuis un unique formulaire - depuis plusieurs listes déroulantes (en contrôle source je récupère les données stockées dans la table)
- qui en selectionnant les valeurs des listes déroulantes construit une requête à exporter sous excel
Auriez-vous une idée de la manière de s'y prendre ?
Merci par avance
.
Oui, merci Pierre, je pense pouvoir m'en sortir avec ton
exemple.
Salutations
BONNE FETES ET BON NOUVEL AN
Laetitia
-----Message d'origine-----
Bonjour,
Cela n'est pas très comliqué, mais c'est un peu délicat
à programmer.
J'opérerais comme cela :
- Tu créés une requête ("Ma_Requete" par exemple) qui
sélectionne par défaut
toute la table ("Select * from Ma_Table").
- Tu créés un formulaire ("Critères_Recherche" par
exemple) avec tes
contrôles listes déroulantes qui servent de critère :
Liste1, Liste2, ....
- Tu créés une fonction (dans le module du formulaire ou
dans un module
global) qui contruit la requête SQL correspondant aux
critères (exemple de
fonction à suivre).
- Tu créés un bouton qui exécute la fonction et exporte
la requête
"Ma_Requete" au format Excel.
Tu peux également afficher le résultat intermédiaire de
chaque modification
de critères dans un sous-formulaire ("Mon_Resultat").
Dans ce cas, pour
chaque contrôle "critère", sur l'événement "MAJ", tu
dois exécuter la
fonction et recalculer le sous-formulaire
("Me.Mon_Resultat.Requery").
Exemple de fonction :
Function BuildSQLString() As Boolean
Dim strSQL As String
Dim strSELECT As String
Dim strFROM As String
Dim strWHERE As String
strSELECT = "Ma_Table.*"
strFROM = "Ma_Table"
If Forms![Critères_recherche].Liste1 <> "" Then
strWHERE = strWHERE & " AND ((Ma_Table.ChampListe1)
Like
[Formulaires]![Critères_recherche]![Liste1] & ""*"")"
End If
If Forms![Critères_recherche].Liste2 <> "" Then
strWHERE = strWHERE & " AND ((Ma_Table.ChampListe2)
Like
[Formulaires]![Critères_recherche]![Liste2] & ""*"")"
End If
'... etc pour tous les critères
strSQL = "SELECT " & strSELECT
strSQL = strSQL & " FROM " & strFROM
If strWHERE <> "" Then strSQL = strSQL & " WHERE " &
Mid$(strWHERE, 6)
strSQL = strSQL & " ORDER BY Ma_Table.Champ1"
CurrentDb.QueryDefs("Ma_Requete").SQL = strSQL
BuildSQLString = True
End Function
Cela te convient-il ?
Pierre.
"Laetitia" <anonymous@discussions.microsoft.com> a écrit
dans le message de
Oui, merci Pierre, je pense pouvoir m'en sortir avec ton exemple.
Salutations
BONNE FETES ET BON NOUVEL AN
Laetitia
-----Message d'origine----- Bonjour,
Cela n'est pas très comliqué, mais c'est un peu délicat à programmer.
J'opérerais comme cela :
- Tu créés une requête ("Ma_Requete" par exemple) qui sélectionne par défaut
toute la table ("Select * from Ma_Table"). - Tu créés un formulaire ("Critères_Recherche" par exemple) avec tes
contrôles listes déroulantes qui servent de critère : Liste1, Liste2, ....
- Tu créés une fonction (dans le module du formulaire ou dans un module
global) qui contruit la requête SQL correspondant aux critères (exemple de
fonction à suivre). - Tu créés un bouton qui exécute la fonction et exporte la requête
"Ma_Requete" au format Excel.
Tu peux également afficher le résultat intermédiaire de chaque modification
de critères dans un sous-formulaire ("Mon_Resultat"). Dans ce cas, pour
chaque contrôle "critère", sur l'événement "MAJ", tu dois exécuter la
fonction et recalculer le sous-formulaire ("Me.Mon_Resultat.Requery").
Exemple de fonction : Function BuildSQLString() As Boolean
Dim strSQL As String Dim strSELECT As String Dim strFROM As String Dim strWHERE As String
strSELECT = "Ma_Table.*" strFROM = "Ma_Table"
If Forms![Critères_recherche].Liste1 <> "" Then strWHERE = strWHERE & " AND ((Ma_Table.ChampListe1) Like
[Formulaires]![Critères_recherche]![Liste1] & ""*"")" End If If Forms![Critères_recherche].Liste2 <> "" Then strWHERE = strWHERE & " AND ((Ma_Table.ChampListe2) Like
[Formulaires]![Critères_recherche]![Liste2] & ""*"")" End If '... etc pour tous les critères
strSQL = "SELECT " & strSELECT strSQL = strSQL & " FROM " & strFROM If strWHERE <> "" Then strSQL = strSQL & " WHERE " & Mid$(strWHERE, 6)
strSQL = strSQL & " ORDER BY Ma_Table.Champ1"
CurrentDb.QueryDefs("Ma_Requete").SQL = strSQL
BuildSQLString = True
End Function
Cela te convient-il ?
Pierre.
"Laetitia" a écrit dans le message de
news:06b501c3ceb9$cab72e20$ Bonjour,
J'aimerai trouver un moyen de faire une recherche Multiple
- depuis un unique formulaire - depuis plusieurs listes déroulantes (en contrôle source je récupère les données stockées dans la table)
- qui en selectionnant les valeurs des listes déroulantes construit une requête à exporter sous excel
Auriez-vous une idée de la manière de s'y prendre ?