Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Affichage par critère

3 réponses
Avatar
Alexis
Bonjour,
j'ai n formulaire de recherche et qui affichage certaine ligne de ma table
selon plusieures critères que j'ai mis sous forme del liste déroulante: dates
, dates et code postal, dates ou code postal, code postal.
j'ai crée une procédure (usine à gaz) , après mise à jour de la liste qui va
dans la table (ouverture de la table selon vba) et met la valeur 1 dans un
champ drapeau qui peut correspondre aux valeurs saisies dans champs de
critères. (ça marche )
mais ma base risque de devenir plus lourde dans le temps.
existerai -t - il des requete plus simples et plus éfficaces , ( sachant
aussi que les critères dates vont de ( date du --> date A).
Merci pout tout vos conseils.

3 réponses

Avatar
Gilbert
Bonjour,

J'utilise quelque chose comme ça:
J'ai N listes déroulantes, zones de texte et cases à cocher dans mon
formulaire de recherche.
Sur click d'un bouton Rechercher, je teste la valeur de chaque liste,
contrôle et case et je construit ma requête SQL au fur et à mesure.
Ensuite je teste le nombre d'enregistrements que me renvoie la requête et
j'affiche un message qui me permet de modifier la recherche ou d'ouvrir un
formulaire basé sur la requête ou d'imprimer.

--

Cordialement,

Gilbert
"Alexis" a écrit dans le message de
news:
Bonjour,
j'ai n formulaire de recherche et qui affichage certaine ligne de ma table
selon plusieures critères que j'ai mis sous forme del liste déroulante:
dates

, dates et code postal, dates ou code postal, code postal.
j'ai crée une procédure (usine à gaz) , après mise à jour de la liste qui
va

dans la table (ouverture de la table selon vba) et met la valeur 1 dans un
champ drapeau qui peut correspondre aux valeurs saisies dans champs de
critères. (ça marche )
mais ma base risque de devenir plus lourde dans le temps.
existerai -t - il des requete plus simples et plus éfficaces , ( sachant
aussi que les critères dates vont de ( date du --> date A).
Merci pout tout vos conseils.



Avatar
Alexis
Bonjour et merci,
est ce possible que tu m'envoi un morceau de ton code pour voir commne tu
construit ta requete.

Merci de ton aide.



Bonjour,

J'utilise quelque chose comme ça:
J'ai N listes déroulantes, zones de texte et cases à cocher dans mon
formulaire de recherche.
Sur click d'un bouton Rechercher, je teste la valeur de chaque liste,
contrôle et case et je construit ma requête SQL au fur et à mesure.
Ensuite je teste le nombre d'enregistrements que me renvoie la requête et
j'affiche un message qui me permet de modifier la recherche ou d'ouvrir un
formulaire basé sur la requête ou d'imprimer.

--

Cordialement,

Gilbert
"Alexis" a écrit dans le message de
news:
Bonjour,
j'ai n formulaire de recherche et qui affichage certaine ligne de ma table
selon plusieures critères que j'ai mis sous forme del liste déroulante:
dates

, dates et code postal, dates ou code postal, code postal.
j'ai crée une procédure (usine à gaz) , après mise à jour de la liste qui
va

dans la table (ouverture de la table selon vba) et met la valeur 1 dans un
champ drapeau qui peut correspondre aux valeurs saisies dans champs de
critères. (ça marche )
mais ma base risque de devenir plus lourde dans le temps.
existerai -t - il des requete plus simples et plus éfficaces , ( sachant
aussi que les critères dates vont de ( date du --> date A).
Merci pout tout vos conseils.








Avatar
Gilbert
Voilà le code de mon bouton Rechercher.
Peut-être pas très commenté, mais si tu veux plus d'explication, tu n'as
qu'à demander

==============================
Private Sub cmdSearch_Click()
Dim MaDb As DAO.Database
Dim rst As DAO.Recordset
Dim lngCount As Long
Dim intRtn As Long
Dim Recherche As String
Dim Année_Min As Long
Dim Année_Max As Long
'Dim Datesitu As Date
Dim Requete As String
Dim StrListeNum As String
'Dim StrListePermis As String
Dim Str_1_Requete As String
Dim Str_2_Requete As String
Dim Str_3_Requete As String
Dim Txt1 As String
Dim Txt2 As String
Dim Txt3 As String
Dim Txt4 As String
Dim Parametres As String
Const Larg_Tab = 1
Const Long_Tab = 10
Dim i As Long
Dim Tab_Str2_Requete(Larg_Tab, Long_Tab) As String
Dim Cas_Str2_Rqte As String
Dim str_tmp As String
Dim NomForm As String
Dim Test_Form As Boolean
Dim Recherche_Annulee As Boolean ' Dans le cas ou un champ contient un
caractère interdit
On Error GoTo Err_cmdSearch_Click

Set MaDb = CurrentDb
Recherche_Annulee = False
'--------------------- Table Tbl_Identite
Tab_Str2_Requete(0, 0) = "ident"
Tab_Str2_Requete(1, 0) = "FROM [Tbl_Identite] "
'--------------------- Ajout Tbl_Infos_Formation
Tab_Str2_Requete(0, 1) = "ident form"
Tab_Str2_Requete(1, 1) = "FROM Tbl_Identite INNER JOIN Tbl_Infos_Formation
ON Tbl_Identite.NumID = Tbl_Infos_Formation.NumIdentite "
'--------------------- Ajout Tbl_Infos_Financement
Tab_Str2_Requete(0, 2) = "ident form conv"
Tab_Str2_Requete(1, 2) = "FROM (Tbl_Identite INNER JOIN Tbl_Infos_Formation
ON Tbl_Identite.NumID = Tbl_Infos_Formation.NumIdentite) INNER JOIN
Tbl_Infos_Financement ON Tbl_Infos_Formation.NumID Tbl_Infos_Financement.NumFormation "
'--------------------- Ajout Tbl_Convention
Tab_Str2_Requete(0, 3) = "ident form conv finan"
Tab_Str2_Requete(1, 3) = "FROM Tbl_Convention INNER JOIN ((Tbl_Identite
INNER JOIN Tbl_Infos_Formation ON Tbl_Identite.NumID Tbl_Infos_Formation.NumIdentite) INNER JOIN Tbl_Infos_Financement ON
Tbl_Infos_Formation.NumID = Tbl_Infos_Financement.NumFormation) ON
Tbl_Convention.NumID = Tbl_Infos_Financement.NumConvention "

'Variables utilisées pour récapituler les critères dans l'édition des
résultats
Nom_Recherche = ""
Prenom_Recherche = ""
Sexe_Recherche = ""
Adresse_Recherche = ""
CodePostal_Recherche = ""
Ville_Recherche = ""
AgeMin_Recherche = ""
AgeMax_Recherche = ""
Nationalite_Recherche = ""
Pays_Recherche = ""
Provenance_Recherche = ""
Situation_Recherche = ""
SiteFormation_Recherche = ""
DateDebApres_Recherche = ""
DateDebAvant_Recherche = ""
DateFinPrevueApres_Recherche = ""
DateFinPrevueAvant_Recherche = ""
DateFinReelleApres_Recherche = ""
DateFinPrevueAvant_Recherche = ""
Financement_Recherche = ""
Convention_Recherche = ""
DerClasse_Recherche = ""
Recherche = ""

'-------------------- Début
Tbl_Identite -----------------------------------------
If Not IsNothing(Me!NomIdentite) Then
str_tmp = Controle_Caracteres_Interdits(Me!NomIdentite)
If str_tmp <> "" Then
MsgBox "Le nom ne peut pas contenir le caractère " & str_tmp,
vbCritical, Titre_Msg_Err_Saisie
Me.NomIdentite.SetFocus
Recherche_Annulee = True
Else
Recherche = Recherche & " AND [NomIdentite] Like " & Chr$(34) &
Me!NomIdentite
If Right$(Me!NomIdentite, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
Nom_Recherche = Me!NomIdentite & "* "
End If
End If


If Not IsNothing(Me!PrenomIdentite) Then
str_tmp = Controle_Caracteres_Interdits(Me!PrenomIdentite)
If str_tmp <> "" Then
MsgBox "Le prénom ne peut pas contenir le caractère " & str_tmp,
vbCritical, Titre_Msg_Err_Saisie
Me.PrenomIdentite.SetFocus
Recherche_Annulee = True
Else
Recherche = Recherche & " AND [PrenomIdentite] Like " & Chr$(34) &
Me!PrenomIdentite
If Right$(Me!PrenomIdentite, 1) = "*" Then
Recherche = Recherche & Chr$(34)
Else
Recherche = Recherche & "*" & Chr$(34)
End If
Prenom_Recherche = Me!PrenomIdentite & "* "
End If
End If

If Not IsNothing(Me!Adresse) Then
str_tmp = Controle_Caracteres_Interdits(Me!Adresse)
If str_tmp <> "" Then
MsgBox "L'adresse ne peut pas contenir le caractère " & str_tmp,
vbCritical, Titre_Msg_Err_Saisie
Me.Adresse.SetFocus
Recherche_Annulee = True
Else
If Right$(Me!Adresse, 1) <> "*" Then
Me!Adresse = Me!Adresse & "*"
End If
Recherche = Recherche & " AND [Adresse1] Like " & Chr$(34) &
Me!Adresse & Chr$(34) & " OR [Adresse2] Like " & Chr$(34) & Me!Adresse &
Chr$(34)
Adresse_Recherche = Me!Adresse
End If
End If

If Not IsNothing(Me!CodePostal) Then
If Len(Me!CodePostal) = 2 Then
Recherche = Recherche & " AND [CodePostal]1000 = " & Me!CodePostal
Else
Recherche = Recherche & " AND [CodePostal] Like " & Chr$(34) &
Me!CodePostal & Chr$(34)
End If
CodePostal_Recherche = Me!CodePostal
End If

If Not IsNothing(Me!Ville) Then
Recherche = Recherche & " AND [Numville] = " & Me!Ville
Ville_Recherche = Me!Ville.Column(1)
End If

If Not IsNothing(Me!Sexe) Then
If Me!Sexe = "F" Then
Recherche = Recherche & " AND ([Genre] <> 'Mr')"
Sexe_Recherche = "Féminin "
Else
Recherche = Recherche & " AND ([Genre] = 'Mr')"
Sexe_Recherche = "Masculin "
End If
End If

If Not IsNothing(Me!Nationalite) Then
Recherche = Recherche & " AND (Code_Nationalite)= " & Me!Nationalite
Nationalite_Recherche = Me!Nationalite.Column(1)
End If

If Not IsNothing(Me!Pays) Then
Recherche = Recherche & " AND (PaysOrigine)= " & Me!Pays
Pays_Recherche = Me!Pays.Column(1)
End If

If Not IsNothing(Me!Age_mini) Then
Année_Min = Year(Date) - Me!Age_mini
Recherche = Recherche & " AND ((Year([DateNaissance]))<= " & Année_Min &
") "
AgeMin_Recherche = Me!Age_mini
End If

If Not IsNothing(Me!Age_maxi) Then
Année_Max = Year(Date) - Me!Age_maxi
Recherche = Recherche & " AND ((Year([DateNaissance]))>= " & Année_Max &
") "
AgeMax_Recherche = Me!Age_maxi
End If

' SELECT et GROUP BY valables pour tous les cas précédents (ne font
référence qu'à la table Tbl_Identite)
Str_1_Requete = "SELECT Tbl_Identite.NumID AS NumID_Identite,
Tbl_Identite.Genre, Tbl_Identite.NomIdentite, Tbl_Identite.PrenomIdentite, "
& _
"Tbl_Identite.DateNaissance, Tbl_Identite.NomJeuneFille,
Tbl_Identite.Adresse1, Tbl_Identite.Adresse2, " & _
"[Adresse1] & ', ' & [Adresse2] AS AdresseComplete,
Tbl_Identite.CodePostal, Tbl_Identite.Numville, " & _
"Tbl_Identite.Email, Tbl_Identite.TelephoneDomicile,
Tbl_Identite.TelephoneTravail, Tbl_Identite.TelephonePortable, " & _
"Tbl_Identite.Code_Nationalite, Tbl_Identite.PaysOrigine,
Tbl_Identite.NumIdentifiantANPE, Tbl_Identite.EligibleObjectif2, " & _
"Tbl_Identite.EligibleObjectif3,
Tbl_Identite.Code_Situation_Familiale, Tbl_Identite.Commentaire, " & _
"Tbl_Identite.Fiche_Archivee,
Tbl_Identite.Fiche_Enregistree, Year([DateNaissance]) AS Année_De_Naissance
"
Str_3_Requete = "GROUP BY Tbl_Identite.NumID, Tbl_Identite.Genre,
Tbl_Identite.NomIdentite, Tbl_Identite.PrenomIdentite, " & _
"Tbl_Identite.DateNaissance, Tbl_Identite.NomJeuneFille,
Tbl_Identite.Adresse1, Tbl_Identite.Adresse2, " & _
"[Adresse1] & ', ' & [Adresse2], Tbl_Identite.CodePostal,
Tbl_Identite.Numville, " & _
"Tbl_Identite.Email, Tbl_Identite.TelephoneDomicile,
Tbl_Identite.TelephoneTravail, Tbl_Identite.TelephonePortable, " & _
"Tbl_Identite.Code_Nationalite, Tbl_Identite.PaysOrigine,
Tbl_Identite.NumIdentifiantANPE, Tbl_Identite.EligibleObjectif2, " & _
"Tbl_Identite.EligibleObjectif3,
Tbl_Identite.Code_Situation_Familiale, Tbl_Identite.Commentaire, " & _
"Tbl_Identite.Fiche_Archivee,
Tbl_Identite.Fiche_Enregistree, Year([DateNaissance]) "
Cas_Str2_Rqte = "ident" '--------------------- Table Tbl_Identite

'-------------------- Fin
Tbl_Identite -------------------------------------------------

'-------------------- Début
Tbl_Infos_Formation -----------------------------------------
Test_Form = False
If Not IsNothing(Me!Provenance) Then
Recherche = Recherche & " AND (([Tbl_Infos_Formation].NumProvenance)= "
& Me!Provenance & ") "
Provenance_Recherche = Me!Provenance.Column(1)
Test_Form = True
End If
If Not IsNothing(Me!Situation) Then
Recherche = Recherche & " AND (([Tbl_Infos_Formation].SituSocialeIota) " & Me!Situation & ") "
Situation_Recherche = Me!Situation.Column(1)
Test_Form = True
End If
If Not IsNothing(Me!SiteFormation) Then
Recherche = Recherche & " AND (([Tbl_Infos_Formation].SiteFormation)= "
& Me!SiteFormation & ") "
SiteFormation_Recherche = Me!SiteFormation.Column(1)
Test_Form = True
End If
If Not IsNothing(Me!NiveauEntree) Then
Recherche = Recherche & " AND (([Tbl_Infos_Formation].DerClasse)= " &
Me!NiveauEntree & ") "
DerClasse_Recherche = Me!NiveauEntree.Column(1)
Test_Form = True
End If
If Not IsNothing(Me.DateDebApres) Then
Recherche = Recherche & " AND (([Tbl_Infos_Formation].DateDebut)>= #" &
DateUS(Me!DateDebApres) & "#) "
DateDebApres_Recherche = Me!DateDebApres
Test_Form = True
End If
If Not IsNothing(Me.DateDebAvant) Then
Recherche = Recherche & " AND (([Tbl_Infos_Formation].DateDebut)<= #" &
DateUS(Me!DateDebAvant) & "#) "
DateDebAvant_Recherche = Me!DateDebAvant
Test_Form = True
End If
If Not IsNothing(Me.DateFinPrevueApres) Then
Recherche = Recherche & " AND (([Tbl_Infos_Formation].DateFinPrevue)> #" & DateUS(Me!DateFinPrevueApres) & "#) "
DateFinPrevueApres_Recherche = Me!DateFinPrevueApres
Test_Form = True
End If
If Not IsNothing(Me.DateFinPrevueAvant) Then
Recherche = Recherche & " AND (([Tbl_Infos_Formation].DateFinPrevue)< #" & DateUS(Me!DateFinPrevueAvant) & "#) "
DateFinPrevueAvant_Recherche = Me!DateFinPrevueAvant
Test_Form = True
End If
If Not IsNothing(Me.DateFinReelleApres) Then
Recherche = Recherche & " AND (([Tbl_Infos_Formation].DateFinReelle)> #" & DateUS(Me!DateFinReelleApres) & "#) "
DateFinReelleApres_Recherche = Me!DateFinReelleApres
Test_Form = True
End If
If Not IsNothing(Me.DateFinReelleAvant) Then
Recherche = Recherche & " AND (([Tbl_Infos_Formation].DateFinReelle)< #" & DateUS(Me!DateFinReelleAvant) & "#) "
DateFinReelleAvant_Recherche = Me!DateFinReelleAvant
Test_Form = True
End If
If Me.FormationTerminee = True Then
Recherche = Recherche & " AND
(([Tbl_Infos_Formation].FormationTerminee)= True) "
FormationTerminee_Recherche = Me!FormationTerminee
Test_Form = True
End If
'pour inclure les champs de la table Tbl_Formation en cas de recherche par
formation sans champ de cette table dans les paramètres sélectionnés
If RecherchePar = "Formation" Then Test_Form = True

If Test_Form Then
Str_1_Requete = Str_1_Requete & ", Tbl_Infos_Formation.NumID AS
NumID_Formation, Tbl_Infos_Formation.NumProvenance,
Tbl_Infos_Formation.SituSocialeIota, " & _
"Tbl_Infos_Formation.SiteFormation,
Tbl_Infos_Formation.DerClasse, Tbl_Infos_Formation.DateDebut,
Tbl_Infos_Formation.DateFinReelle, " & _
"Tbl_Infos_Formation.DateFinPrevue,
Tbl_Infos_Formation.FormationTerminee "
Str_3_Requete = Str_3_Requete & ", Tbl_Infos_Formation.NumID,
Tbl_Infos_Formation.NumProvenance, Tbl_Infos_Formation.SituSocialeIota, " &
_
"Tbl_Infos_Formation.SiteFormation,
Tbl_Infos_Formation.DerClasse, Tbl_Infos_Formation.DateDebut,
Tbl_Infos_Formation.DateFinReelle, " & _
"Tbl_Infos_Formation.DateFinPrevue,
Tbl_Infos_Formation.FormationTerminee "
Cas_Str2_Rqte = Cas_Str2_Rqte & " form"
End If
'-------------------- Fin
Tbl_Infos_Formation -------------------------------------------

'-------------------- Début
Tbl_Infos_Financement ------------------------------------------------
If Not IsNothing(Me.Convention) Then
Recherche = Recherche & " AND ((Tbl_Infos_Financement.NumConvention)=" &
Me!Convention & ") "
Str_1_Requete = Str_1_Requete & ", Tbl_Infos_Financement.NumConvention "
Str_3_Requete = Str_3_Requete & ", Tbl_Infos_Financement.NumConvention "
If InStr(1, Cas_Str2_Rqte, "form") = 0 Then Cas_Str2_Rqte Cas_Str2_Rqte & " form"
Cas_Str2_Rqte = Cas_Str2_Rqte & " conv"
Convention_Recherche = Me!Convention.Column(1)
End If
'-------------------- Fin
Tbl_Infos_Financement --------------------------------------------------

'-------------------- Début
Tbl_Convention ------------------------------------------------
If Not IsNothing(Me.Financement) Then
Recherche = Recherche & " AND ((Tbl_Convention.Financement)= " &
Me!Financement & ") "
Str_1_Requete = Str_1_Requete & ", Tbl_Convention.Financement "
Str_3_Requete = Str_3_Requete & ", Tbl_Convention.Financement "
If InStr(1, Cas_Str2_Rqte, "form") = 0 Then Cas_Str2_Rqte Cas_Str2_Rqte & " form"
If InStr(1, Cas_Str2_Rqte, "conv") = 0 Then Cas_Str2_Rqte Cas_Str2_Rqte & " conv"
Cas_Str2_Rqte = Cas_Str2_Rqte & " finan"
Financement_Recherche = Me!Financement.Column(1)
End If
'-------------------- Fin
Tbl_Convention --------------------------------------------------


'Sélection dans le tableau de la partie FROM....INNER JOIN... de la requête
For i = 0 To Long_Tab
If Tab_Str2_Requete(0, i) = Cas_Str2_Rqte Then
Str_2_Requete = Tab_Str2_Requete(1, i)
Exit For
' MsgBox Tab_Str2_Requete(1, i)
End If
Next i

If Not IsNothing(Recherche) Then
Select Case RecherchePar
Case "Identité"
If DLookup("Rec_Fiches_Archivees", "Tbl_Options", "Ref_Param=" &
IdUtilisateur) = False Then
Recherche = Recherche & " AND
(([Tbl_Identite].Fiche_Archivee)úlse)"
End If
Case "Formation"
If DLookup("Rec_FormationsTerminees", "Tbl_Options", "Ref_Param=" &
IdUtilisateur) = False Then
Recherche = Recherche & " AND
(([Tbl_Infos_Formation].FormationTerminee)úlse)"
End If
End Select
End If

If Left(Recherche, 4) = " AND" Then Recherche = Mid(Recherche, 5)
Requete = Str_1_Requete & Str_2_Requete & Str_3_Requete & "HAVING " &
Recherche & " ;"

'MsgBox Requete
'Debug.Print Requete
If Not Recherche_Annulee Then 'Recherche annulée si un caractère
interdit a été utilisé
If IsNothing(Recherche) Then ' Si aucun critère rien à faire
MsgBox "Aucun critère de recherche n'a été spécifié.",
vbExclamation, Titre_Db
Me!NomIdentite.SetFocus
Else
' Me.Visible = False
DoCmd.Hourglass True
' Find out if any books satisfy the Where clause
'Copier_Txt_Fichier (Requete)
Set rst = MaDb.OpenRecordset(Requete)
' If none found, then tell them and make me visible to try again
' MsgBox rst.RecordCount
If rst.RecordCount = 0 Then
DoCmd.Hourglass False
MsgBox "Aucune fiche ne correspond à vos critères de recherche",
vbExclamation, Titre_Db
Recherche = ""
Me.Visible = True
rst.Close
Else
lngCount = 0
With rst 'Création de la liste des fiches
.MoveFirst
StrListeNum = ", " 'pour tester les nombres entre 2
virgules ci-dessous
Do While Not .EOF
'Teste si le N° est déjà dans la liste sinon le nom est
imprimé autant de fois que de contacts
Select Case RecherchePar
Case "Identité"
If InStr(StrListeNum, ", " & !NumID_Identite & ",")
= 0 Then
StrListeNum = StrListeNum & !NumID_Identite & ",
"
lngCount = lngCount + 1
End If
Case "Formation"
If InStr(StrListeNum, !NumID_Formation & ",") = 0
Then
StrListeNum = StrListeNum & !NumID_Formation &
", "
lngCount = lngCount + 1
End If
End Select
.MoveNext
Loop
End With
' MsgBox StrListeNum
StrListeNum = Mid(StrListeNum, 3)
DoCmd.Hourglass False
' If more than 10, then ask if they want to only see a summary
If lngCount > 0 Then

Txt1 = lngCount & " fiches correspondent à vos critères de
recherche."
Txt2 = "Cliquez sur Oui pour accéder aux fiches
sélectionnées."
If lngCount = 1 Then Txt1 = lngCount & " fiche correspond à
vos critères de recherche."
Txt2 = "Cliquez sur Editer pour accéder à la fiche
sélectionnée."
Txt3 = " sur Imprimer pour imprimer la liste des
noms."
Txt4 = " sur Annuler pour modifier les critères
de recherche."
Parametres = Titre_Db & ";" & Txt1 & ";" & Txt2 & ";" & Txt3
& ";" & Txt4 & ";" & "&Editer;&Imprimer;&Annuler;"
DoCmd.OpenForm "Frm_Message", , , , , acDialog, Parametres
intRtn = Retour_Message
Select Case intRtn
Case 1 ' Yes - show show full details
Select Case RecherchePar
Case "Identité"
NomForm = "Frm_Identite"
Case "Formation"
NomForm = "Frm_Infos_Formation"
End Select
DoCmd.OpenForm NomForm, , , "[NumID] in (" &
StrListeNum & ")"
DoCmd.Close acForm, Me.Name ' Close Me, and
we're done
Forms(NomForm).SetFocus
Case 2
Requete_Recherche = Requete
DoCmd.Close acForm, Me.Name ' Close Me, and
we're done
DoCmd.OpenReport "Liste recherche", acViewPreview
', , , , Cas_Str2_Rqte
DoCmd.Maximize 'Affichage pleine page des états
Case 3 ' Cancel - Try again
Me.Visible = True
GoTo Exit_cmdSearch_Click
End Select
End If
End If
End If
End If
Exit_cmdSearch_Click:
Set rst = Nothing
Set MaDb = Nothing
DoCmd.Hourglass False
Exit Sub

Err_cmdSearch_Click:
MsgBox "Erreur " & err.Number & ": " & err.Description, , Titre_Msg_Err
Resume Exit_cmdSearch_Click

End Sub
=================================
--
Cordialement,

Gilbert


"Alexis" a écrit dans le message de
news:
Bonjour et merci,
est ce possible que tu m'envoi un morceau de ton code pour voir commne tu
construit ta requete.

Merci de ton aide.



Bonjour,

J'utilise quelque chose comme ça:
J'ai N listes déroulantes, zones de texte et cases à cocher dans mon
formulaire de recherche.
Sur click d'un bouton Rechercher, je teste la valeur de chaque liste,
contrôle et case et je construit ma requête SQL au fur et à mesure.
Ensuite je teste le nombre d'enregistrements que me renvoie la requête
et


j'affiche un message qui me permet de modifier la recherche ou d'ouvrir
un


formulaire basé sur la requête ou d'imprimer.

--

Cordialement,

Gilbert
"Alexis" a écrit dans le message de
news:
Bonjour,
j'ai n formulaire de recherche et qui affichage certaine ligne de ma
table



selon plusieures critères que j'ai mis sous forme del liste
déroulante:



dates
, dates et code postal, dates ou code postal, code postal.
j'ai crée une procédure (usine à gaz) , après mise à jour de la liste
qui



va
dans la table (ouverture de la table selon vba) et met la valeur 1
dans un



champ drapeau qui peut correspondre aux valeurs saisies dans champs de
critères. (ça marche )
mais ma base risque de devenir plus lourde dans le temps.
existerai -t - il des requete plus simples et plus éfficaces , (
sachant



aussi que les critères dates vont de ( date du --> date A).
Merci pout tout vos conseils.