Bonjour à tous,
Débutant en access, je suis heurté au problème suivant... J'ai un formulaire basé sur une table comportant les champs [NOM]
[CODE POSTAL] [VILLE] (ainsi que d'autres, mais ca n'est pas la question ).
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE] [VILLE_RECHERCHE], et un bouton d'action. Je souhaite que lorsque
le bouton d'action est pressé, un filtre s'exerce de la manière suivante : par défaut (si le champ texte est "vide", aucun filtre
J'ai essayé sans succès de passer par un formulaire généré par une requête avec une condition where basée sur la valeur des
champs. J'ai tenté également quelques macros mais sans succès jusqu'ici...
Quelqu'un aurait-il la gentillesse de m'aider à comprendre comment construire cela ?
Cordialement,
Thomas B.
Bonjour à tous,
Débutant en access, je suis heurté au problème suivant... J'ai un formulaire basé sur une table comportant les champs [NOM]
[CODE POSTAL] [VILLE] (ainsi que d'autres, mais ca n'est pas la question ).
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE] [VILLE_RECHERCHE], et un bouton d'action. Je souhaite que lorsque
le bouton d'action est pressé, un filtre s'exerce de la manière suivante : par défaut (si le champ texte est "vide", aucun filtre
J'ai essayé sans succès de passer par un formulaire généré par une requête avec une condition where basée sur la valeur des
champs. J'ai tenté également quelques macros mais sans succès jusqu'ici...
Quelqu'un aurait-il la gentillesse de m'aider à comprendre comment construire cela ?
Cordialement,
Thomas B.
Bonjour à tous,
Débutant en access, je suis heurté au problème suivant... J'ai un formulaire basé sur une table comportant les champs [NOM]
[CODE POSTAL] [VILLE] (ainsi que d'autres, mais ca n'est pas la question ).
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE] [VILLE_RECHERCHE], et un bouton d'action. Je souhaite que lorsque
le bouton d'action est pressé, un filtre s'exerce de la manière suivante : par défaut (si le champ texte est "vide", aucun filtre
J'ai essayé sans succès de passer par un formulaire généré par une requête avec une condition where basée sur la valeur des
champs. J'ai tenté également quelques macros mais sans succès jusqu'ici...
Quelqu'un aurait-il la gentillesse de m'aider à comprendre comment construire cela ?
Cordialement,
Thomas B.
Bonjour à tous,
Débutant en access, je suis heurté au problème suivant... J'ai un
formulaire basé sur une table comportant les champs [NOM] [CODE POSTAL]
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE]
[VILLE_RECHERCHE], et un bouton d'action. Je souhaite que lorsque le bouton
J'ai essayé sans succès de passer par un formulaire généré par une requête
avec une condition where basée sur la valeur des champs. J'ai tenté
Quelqu'un aurait-il la gentillesse de m'aider à comprendre comment
construire cela ?
Cordialement,
Thomas B.
Bonjour à tous,
Débutant en access, je suis heurté au problème suivant... J'ai un
formulaire basé sur une table comportant les champs [NOM] [CODE POSTAL]
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE]
[VILLE_RECHERCHE], et un bouton d'action. Je souhaite que lorsque le bouton
J'ai essayé sans succès de passer par un formulaire généré par une requête
avec une condition where basée sur la valeur des champs. J'ai tenté
Quelqu'un aurait-il la gentillesse de m'aider à comprendre comment
construire cela ?
Cordialement,
Thomas B.
Bonjour à tous,
Débutant en access, je suis heurté au problème suivant... J'ai un
formulaire basé sur une table comportant les champs [NOM] [CODE POSTAL]
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE]
[VILLE_RECHERCHE], et un bouton d'action. Je souhaite que lorsque le bouton
J'ai essayé sans succès de passer par un formulaire généré par une requête
avec une condition where basée sur la valeur des champs. J'ai tenté
Quelqu'un aurait-il la gentillesse de m'aider à comprendre comment
construire cela ?
Cordialement,
Thomas B.
Saut
C'est simple, tu testes la présence de texte dans tes champs et tu montes ton critère.
'-------------------------------------------------
Private Sub btnFiltre_Click()
On Error Goto ErrorHere:
Dim strFiltre As String, strFiltreNom As String, strFiltreCP As String, strFiltreVille As String, strSQLSource as String
strFiltre = ""
strFiltreNom = pvsFiltreNom
strFiltreCP = pvsFiltreCP
strFiltreVille = pvsFiltreVille
If Len(strFiltreNom) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreNom
Else
strFiltre = strFiltreNom
End If
End If
If Len(strFiltreCP) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreCP
Else
strFiltre = strFiltreCP
End If
End If
If Len(strFiltreVille) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreVille
Else
strFiltre = strFiltreVille
End If
End If
If Len(strFiltre) > 0 Then
strSQLSource = "SELECT * FROM TaTable WHERE " & strFiltre & ";"
Else
strSQLSource = "SELECT * FROM TaTable;"
End If
'Si tes résultats sortent dans un ssForm
Me.NomSSForm.Form.RecordSource = strSQLSource
'Si tes résultats sortent dans une zone de liste
zdlResultatsFiltres = strSQLSource
'Sinon
Me.RecordSource = strSQLSource
Me.Requery
ExitHere:
Exit Sub
ErrorHere:
MsgBox Err.Number & " - " & Err.Description, vbOkOnly, "Erreur"
Resume ExitHere
End Sub
'-------------------------------------------------
Private Sub pvsFiltreNom() As String
pvsFiltreNom = ""
If Len(Nz(Nom_Recherche, ""))>0 Then pvsFiltreNom = "NOM Like '*" & Replace(Nom_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Private Sub pvsFiltreCP() As String
pvsFiltreCP = ""
If Len(Nz(CP_Recherche, ""))>0 Then pvsFiltreCP = "[CODE POSTAL] Like '*" & Replace(CP_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Private Sub pvsFiltreVille() As String
pvsFiltreVille = ""
If Len(Nz(Ville_Recherche, ""))>0 Then pvsFiltreVille = "VILLE Like '*" & Replace(Ville_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Ouala
Bye
Buddy
"Thomas B." <Thomas a écrit dans le message de
news:Bonjour à tous,
Débutant en access, je suis heurté au problème suivant... J'ai un formulaire basé sur une table comportant les champs [NOM]
[CODE POSTAL] [VILLE] (ainsi que d'autres, mais ca n'est pas la question ).
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE] [VILLE_RECHERCHE], et un bouton d'action. Je souhaite que lorsque
le bouton d'action est pressé, un filtre s'exerce de la manière suivante : par défaut (si le champ texte est "vide", aucun filtre
ne soit exercé sur le critère, et si dans [VILLE_RECHERCHE] ou [NOM_RECHERCHE] du texte est saisi, un filtre s'exerce et
s'applique aux enregistrements contenant (et pas commençant ni étant exactement) le texte saisi...
J'ai essayé sans succès de passer par un formulaire généré par une requête avec une condition where basée sur la valeur des
champs. J'ai tenté également quelques macros mais sans succès jusqu'ici...
Quelqu'un aurait-il la gentillesse de m'aider à comprendre comment construire cela ?
Cordialement,
Thomas B.
Saut
C'est simple, tu testes la présence de texte dans tes champs et tu montes ton critère.
'-------------------------------------------------
Private Sub btnFiltre_Click()
On Error Goto ErrorHere:
Dim strFiltre As String, strFiltreNom As String, strFiltreCP As String, strFiltreVille As String, strSQLSource as String
strFiltre = ""
strFiltreNom = pvsFiltreNom
strFiltreCP = pvsFiltreCP
strFiltreVille = pvsFiltreVille
If Len(strFiltreNom) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreNom
Else
strFiltre = strFiltreNom
End If
End If
If Len(strFiltreCP) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreCP
Else
strFiltre = strFiltreCP
End If
End If
If Len(strFiltreVille) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreVille
Else
strFiltre = strFiltreVille
End If
End If
If Len(strFiltre) > 0 Then
strSQLSource = "SELECT * FROM TaTable WHERE " & strFiltre & ";"
Else
strSQLSource = "SELECT * FROM TaTable;"
End If
'Si tes résultats sortent dans un ssForm
Me.NomSSForm.Form.RecordSource = strSQLSource
'Si tes résultats sortent dans une zone de liste
zdlResultatsFiltres = strSQLSource
'Sinon
Me.RecordSource = strSQLSource
Me.Requery
ExitHere:
Exit Sub
ErrorHere:
MsgBox Err.Number & " - " & Err.Description, vbOkOnly, "Erreur"
Resume ExitHere
End Sub
'-------------------------------------------------
Private Sub pvsFiltreNom() As String
pvsFiltreNom = ""
If Len(Nz(Nom_Recherche, ""))>0 Then pvsFiltreNom = "NOM Like '*" & Replace(Nom_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Private Sub pvsFiltreCP() As String
pvsFiltreCP = ""
If Len(Nz(CP_Recherche, ""))>0 Then pvsFiltreCP = "[CODE POSTAL] Like '*" & Replace(CP_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Private Sub pvsFiltreVille() As String
pvsFiltreVille = ""
If Len(Nz(Ville_Recherche, ""))>0 Then pvsFiltreVille = "VILLE Like '*" & Replace(Ville_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Ouala
Bye
Buddy
"Thomas B." <Thomas B.@discussions.microsoft.com> a écrit dans le message de
news:231E1695-5940-4D7B-9FF8-B0FA80107482@microsoft.com...
Bonjour à tous,
Débutant en access, je suis heurté au problème suivant... J'ai un formulaire basé sur une table comportant les champs [NOM]
[CODE POSTAL] [VILLE] (ainsi que d'autres, mais ca n'est pas la question ).
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE] [VILLE_RECHERCHE], et un bouton d'action. Je souhaite que lorsque
le bouton d'action est pressé, un filtre s'exerce de la manière suivante : par défaut (si le champ texte est "vide", aucun filtre
ne soit exercé sur le critère, et si dans [VILLE_RECHERCHE] ou [NOM_RECHERCHE] du texte est saisi, un filtre s'exerce et
s'applique aux enregistrements contenant (et pas commençant ni étant exactement) le texte saisi...
J'ai essayé sans succès de passer par un formulaire généré par une requête avec une condition where basée sur la valeur des
champs. J'ai tenté également quelques macros mais sans succès jusqu'ici...
Quelqu'un aurait-il la gentillesse de m'aider à comprendre comment construire cela ?
Cordialement,
Thomas B.
Saut
C'est simple, tu testes la présence de texte dans tes champs et tu montes ton critère.
'-------------------------------------------------
Private Sub btnFiltre_Click()
On Error Goto ErrorHere:
Dim strFiltre As String, strFiltreNom As String, strFiltreCP As String, strFiltreVille As String, strSQLSource as String
strFiltre = ""
strFiltreNom = pvsFiltreNom
strFiltreCP = pvsFiltreCP
strFiltreVille = pvsFiltreVille
If Len(strFiltreNom) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreNom
Else
strFiltre = strFiltreNom
End If
End If
If Len(strFiltreCP) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreCP
Else
strFiltre = strFiltreCP
End If
End If
If Len(strFiltreVille) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreVille
Else
strFiltre = strFiltreVille
End If
End If
If Len(strFiltre) > 0 Then
strSQLSource = "SELECT * FROM TaTable WHERE " & strFiltre & ";"
Else
strSQLSource = "SELECT * FROM TaTable;"
End If
'Si tes résultats sortent dans un ssForm
Me.NomSSForm.Form.RecordSource = strSQLSource
'Si tes résultats sortent dans une zone de liste
zdlResultatsFiltres = strSQLSource
'Sinon
Me.RecordSource = strSQLSource
Me.Requery
ExitHere:
Exit Sub
ErrorHere:
MsgBox Err.Number & " - " & Err.Description, vbOkOnly, "Erreur"
Resume ExitHere
End Sub
'-------------------------------------------------
Private Sub pvsFiltreNom() As String
pvsFiltreNom = ""
If Len(Nz(Nom_Recherche, ""))>0 Then pvsFiltreNom = "NOM Like '*" & Replace(Nom_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Private Sub pvsFiltreCP() As String
pvsFiltreCP = ""
If Len(Nz(CP_Recherche, ""))>0 Then pvsFiltreCP = "[CODE POSTAL] Like '*" & Replace(CP_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Private Sub pvsFiltreVille() As String
pvsFiltreVille = ""
If Len(Nz(Ville_Recherche, ""))>0 Then pvsFiltreVille = "VILLE Like '*" & Replace(Ville_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Ouala
Bye
Buddy
"Thomas B." <Thomas a écrit dans le message de
news:Bonjour à tous,
Débutant en access, je suis heurté au problème suivant... J'ai un formulaire basé sur une table comportant les champs [NOM]
[CODE POSTAL] [VILLE] (ainsi que d'autres, mais ca n'est pas la question ).
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE] [VILLE_RECHERCHE], et un bouton d'action. Je souhaite que lorsque
le bouton d'action est pressé, un filtre s'exerce de la manière suivante : par défaut (si le champ texte est "vide", aucun filtre
ne soit exercé sur le critère, et si dans [VILLE_RECHERCHE] ou [NOM_RECHERCHE] du texte est saisi, un filtre s'exerce et
s'applique aux enregistrements contenant (et pas commençant ni étant exactement) le texte saisi...
J'ai essayé sans succès de passer par un formulaire généré par une requête avec une condition where basée sur la valeur des
champs. J'ai tenté également quelques macros mais sans succès jusqu'ici...
Quelqu'un aurait-il la gentillesse de m'aider à comprendre comment construire cela ?
Cordialement,
Thomas B.
Thomas,
Je passais par là :-) et ...
Je pense que cela fonctionne pour "étant exactement".
Pour "Contenant", je crois qu'il y a une fontion "Mid" mais je ne sais pas
grand chose sur elle.
SubPrivate TonBouton_Click()
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "TonFormulaire"
stLinkCriteria = "[Nom]='" & Nz(Me![Nom_Recherche];*) & "'" & "AND [Code
Postal]='" & Nz(Me![CP_Recherche];*) & "'" & "AND [Ville]='" &
Nz(Me![Ville_Recherche];*) & "'")
DoCmd.OpenForm stDocName, , , stLinkCriteria
End Sub
Si cela peut te servir en attendant que quelqu'un te donne une solution plus
adéquate à ce que tu veux ou si cela te sert de base pour l'amélñiorer toi.
Tan mieux! :-)
Je te préviens aussi que je suis pas du tout un pro de VBA donc je ne te le
garanti pas 100% libre d'erreur :-(
Par exemple, je ne suis pas sûr le caractère * vale pour dire que cela soit
égal à "n'importe quoi".
Bonne journée
Greg
"Thomas B." <Thomas escribió en el mensaje
news:Bonjour à tous,
Débutant en access, je suis heurté au problème suivant... J'ai un
formulaire basé sur une table comportant les champs [NOM] [CODE POSTAL]
[VILLE] (ainsi que d'autres, mais ca n'est pas la question ).
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE]
[VILLE_RECHERCHE], et un bouton d'action. Je souhaite que lorsque le bouton
d'action est pressé, un filtre s'exerce de la manière suivante : par défaut
(si le champ texte est "vide", aucun filtre ne soit exercé sur le critère,
et si dans [VILLE_RECHERCHE] ou [NOM_RECHERCHE] du texte est saisi, un
filtre s'exerce et s'applique aux enregistrements contenant (et pas
commençant ni étant exactement) le texte saisi...
J'ai essayé sans succès de passer par un formulaire généré par une requête
avec une condition where basée sur la valeur des champs. J'ai tenté
également quelques macros mais sans succès jusqu'ici...
Quelqu'un aurait-il la gentillesse de m'aider à comprendre comment
construire cela ?
Cordialement,
Thomas B.
Thomas,
Je passais par là :-) et ...
Je pense que cela fonctionne pour "étant exactement".
Pour "Contenant", je crois qu'il y a une fontion "Mid" mais je ne sais pas
grand chose sur elle.
SubPrivate TonBouton_Click()
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "TonFormulaire"
stLinkCriteria = "[Nom]='" & Nz(Me![Nom_Recherche];*) & "'" & "AND [Code
Postal]='" & Nz(Me![CP_Recherche];*) & "'" & "AND [Ville]='" &
Nz(Me![Ville_Recherche];*) & "'")
DoCmd.OpenForm stDocName, , , stLinkCriteria
End Sub
Si cela peut te servir en attendant que quelqu'un te donne une solution plus
adéquate à ce que tu veux ou si cela te sert de base pour l'amélñiorer toi.
Tan mieux! :-)
Je te préviens aussi que je suis pas du tout un pro de VBA donc je ne te le
garanti pas 100% libre d'erreur :-(
Par exemple, je ne suis pas sûr le caractère * vale pour dire que cela soit
égal à "n'importe quoi".
Bonne journée
Greg
"Thomas B." <Thomas B.@discussions.microsoft.com> escribió en el mensaje
news:231E1695-5940-4D7B-9FF8-B0FA80107482@microsoft.com...
Bonjour à tous,
Débutant en access, je suis heurté au problème suivant... J'ai un
formulaire basé sur une table comportant les champs [NOM] [CODE POSTAL]
[VILLE] (ainsi que d'autres, mais ca n'est pas la question ).
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE]
[VILLE_RECHERCHE], et un bouton d'action. Je souhaite que lorsque le bouton
d'action est pressé, un filtre s'exerce de la manière suivante : par défaut
(si le champ texte est "vide", aucun filtre ne soit exercé sur le critère,
et si dans [VILLE_RECHERCHE] ou [NOM_RECHERCHE] du texte est saisi, un
filtre s'exerce et s'applique aux enregistrements contenant (et pas
commençant ni étant exactement) le texte saisi...
J'ai essayé sans succès de passer par un formulaire généré par une requête
avec une condition where basée sur la valeur des champs. J'ai tenté
également quelques macros mais sans succès jusqu'ici...
Quelqu'un aurait-il la gentillesse de m'aider à comprendre comment
construire cela ?
Cordialement,
Thomas B.
Thomas,
Je passais par là :-) et ...
Je pense que cela fonctionne pour "étant exactement".
Pour "Contenant", je crois qu'il y a une fontion "Mid" mais je ne sais pas
grand chose sur elle.
SubPrivate TonBouton_Click()
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "TonFormulaire"
stLinkCriteria = "[Nom]='" & Nz(Me![Nom_Recherche];*) & "'" & "AND [Code
Postal]='" & Nz(Me![CP_Recherche];*) & "'" & "AND [Ville]='" &
Nz(Me![Ville_Recherche];*) & "'")
DoCmd.OpenForm stDocName, , , stLinkCriteria
End Sub
Si cela peut te servir en attendant que quelqu'un te donne une solution plus
adéquate à ce que tu veux ou si cela te sert de base pour l'amélñiorer toi.
Tan mieux! :-)
Je te préviens aussi que je suis pas du tout un pro de VBA donc je ne te le
garanti pas 100% libre d'erreur :-(
Par exemple, je ne suis pas sûr le caractère * vale pour dire que cela soit
égal à "n'importe quoi".
Bonne journée
Greg
"Thomas B." <Thomas escribió en el mensaje
news:Bonjour à tous,
Débutant en access, je suis heurté au problème suivant... J'ai un
formulaire basé sur une table comportant les champs [NOM] [CODE POSTAL]
[VILLE] (ainsi que d'autres, mais ca n'est pas la question ).
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE]
[VILLE_RECHERCHE], et un bouton d'action. Je souhaite que lorsque le bouton
d'action est pressé, un filtre s'exerce de la manière suivante : par défaut
(si le champ texte est "vide", aucun filtre ne soit exercé sur le critère,
et si dans [VILLE_RECHERCHE] ou [NOM_RECHERCHE] du texte est saisi, un
filtre s'exerce et s'applique aux enregistrements contenant (et pas
commençant ni étant exactement) le texte saisi...
J'ai essayé sans succès de passer par un formulaire généré par une requête
avec une condition where basée sur la valeur des champs. J'ai tenté
également quelques macros mais sans succès jusqu'ici...
Quelqu'un aurait-il la gentillesse de m'aider à comprendre comment
construire cela ?
Cordialement,
Thomas B.
Super !!! Merci ENORMEMENT pour cette réponse on-ne-peut-plus complète !!!
J'avoue que je vais mettre un peu de temps pour la digérer entièrement, mais d'ici demain ca s'ra bon !
Juste 1 question que j'ai pas compris lors de mes lectures... Mon résultat final n'est pas un sous-formulaire mais le filtre du
formulaire sur lequel les champs Nom_Recherche & Cie sont...
La syntaxe est bien :
Me.Filter = strSQLSource
Me.FilerOn = True
?
Encore mille merci,
Thomas B.Saut
C'est simple, tu testes la présence de texte dans tes champs et tu montes ton critère.
'-------------------------------------------------
Private Sub btnFiltre_Click()
On Error Goto ErrorHere:
Dim strFiltre As String, strFiltreNom As String, strFiltreCP As String, strFiltreVille As String, strSQLSource as String
strFiltre = ""
strFiltreNom = pvsFiltreNom
strFiltreCP = pvsFiltreCP
strFiltreVille = pvsFiltreVille
If Len(strFiltreNom) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreNom
Else
strFiltre = strFiltreNom
End If
End If
If Len(strFiltreCP) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreCP
Else
strFiltre = strFiltreCP
End If
End If
If Len(strFiltreVille) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreVille
Else
strFiltre = strFiltreVille
End If
End If
If Len(strFiltre) > 0 Then
strSQLSource = "SELECT * FROM TaTable WHERE " & strFiltre & ";"
Else
strSQLSource = "SELECT * FROM TaTable;"
End If
'Si tes résultats sortent dans un ssForm
Me.NomSSForm.Form.RecordSource = strSQLSource
'Si tes résultats sortent dans une zone de liste
zdlResultatsFiltres = strSQLSource
'Sinon
Me.RecordSource = strSQLSource
Me.Requery
ExitHere:
Exit Sub
ErrorHere:
MsgBox Err.Number & " - " & Err.Description, vbOkOnly, "Erreur"
Resume ExitHere
End Sub
'-------------------------------------------------
Private Sub pvsFiltreNom() As String
pvsFiltreNom = ""
If Len(Nz(Nom_Recherche, ""))>0 Then pvsFiltreNom = "NOM Like '*" & Replace(Nom_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Private Sub pvsFiltreCP() As String
pvsFiltreCP = ""
If Len(Nz(CP_Recherche, ""))>0 Then pvsFiltreCP = "[CODE POSTAL] Like '*" & Replace(CP_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Private Sub pvsFiltreVille() As String
pvsFiltreVille = ""
If Len(Nz(Ville_Recherche, ""))>0 Then pvsFiltreVille = "VILLE Like '*" & Replace(Ville_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Ouala
Bye
Buddy
"Thomas B." <Thomas a écrit dans le message de
news:Bonjour Ãf tous,
DÃf©butant en access, je suis heurtÃf© au problÃf¨me suivant... J'ai un formulaire basÃf© sur une table comportant les
champs [NOM]
[CODE POSTAL] [VILLE] (ainsi que d'autres, mais ca n'est pas la question ).
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE] [VILLE_RECHERCHE], et un bouton d'action. Je souhaite que
lorsque
le bouton d'action est pressÃf©, un filtre s'exerce de la maniÃf¨re suivante : par dÃf©faut (si le champ texte est "vide",
aucun filtre
ne soit exercÃf© sur le critÃf¨re, et si dans [VILLE_RECHERCHE] ou [NOM_RECHERCHE] du texte est saisi, un filtre s'exerce et
s'applique aux enregistrements contenant (et pas commenÃf§ant ni Ãf©tant exactement) le texte saisi...
J'ai essayÃf© sans succÃf¨s de passer par un formulaire gÃf©nÃf©rÃf© par une requÃfªte avec une condition where basÃf©e
sur la valeur des
champs. J'ai tentÃf© Ãf©galement quelques macros mais sans succÃf¨s jusqu'ici...
Quelqu'un aurait-il la gentillesse de m'aider Ãf comprendre comment construire cela ?
Cordialement,
Thomas B.
Super !!! Merci ENORMEMENT pour cette réponse on-ne-peut-plus complète !!!
J'avoue que je vais mettre un peu de temps pour la digérer entièrement, mais d'ici demain ca s'ra bon !
Juste 1 question que j'ai pas compris lors de mes lectures... Mon résultat final n'est pas un sous-formulaire mais le filtre du
formulaire sur lequel les champs Nom_Recherche & Cie sont...
La syntaxe est bien :
Me.Filter = strSQLSource
Me.FilerOn = True
?
Encore mille merci,
Thomas B.
Saut
C'est simple, tu testes la présence de texte dans tes champs et tu montes ton critère.
'-------------------------------------------------
Private Sub btnFiltre_Click()
On Error Goto ErrorHere:
Dim strFiltre As String, strFiltreNom As String, strFiltreCP As String, strFiltreVille As String, strSQLSource as String
strFiltre = ""
strFiltreNom = pvsFiltreNom
strFiltreCP = pvsFiltreCP
strFiltreVille = pvsFiltreVille
If Len(strFiltreNom) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreNom
Else
strFiltre = strFiltreNom
End If
End If
If Len(strFiltreCP) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreCP
Else
strFiltre = strFiltreCP
End If
End If
If Len(strFiltreVille) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreVille
Else
strFiltre = strFiltreVille
End If
End If
If Len(strFiltre) > 0 Then
strSQLSource = "SELECT * FROM TaTable WHERE " & strFiltre & ";"
Else
strSQLSource = "SELECT * FROM TaTable;"
End If
'Si tes résultats sortent dans un ssForm
Me.NomSSForm.Form.RecordSource = strSQLSource
'Si tes résultats sortent dans une zone de liste
zdlResultatsFiltres = strSQLSource
'Sinon
Me.RecordSource = strSQLSource
Me.Requery
ExitHere:
Exit Sub
ErrorHere:
MsgBox Err.Number & " - " & Err.Description, vbOkOnly, "Erreur"
Resume ExitHere
End Sub
'-------------------------------------------------
Private Sub pvsFiltreNom() As String
pvsFiltreNom = ""
If Len(Nz(Nom_Recherche, ""))>0 Then pvsFiltreNom = "NOM Like '*" & Replace(Nom_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Private Sub pvsFiltreCP() As String
pvsFiltreCP = ""
If Len(Nz(CP_Recherche, ""))>0 Then pvsFiltreCP = "[CODE POSTAL] Like '*" & Replace(CP_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Private Sub pvsFiltreVille() As String
pvsFiltreVille = ""
If Len(Nz(Ville_Recherche, ""))>0 Then pvsFiltreVille = "VILLE Like '*" & Replace(Ville_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Ouala
Bye
Buddy
"Thomas B." <Thomas B.@discussions.microsoft.com> a écrit dans le message de
news:231E1695-5940-4D7B-9FF8-B0FA80107482@microsoft.com...
Bonjour Ãf tous,
DÃf©butant en access, je suis heurtÃf© au problÃf¨me suivant... J'ai un formulaire basÃf© sur une table comportant les
champs [NOM]
[CODE POSTAL] [VILLE] (ainsi que d'autres, mais ca n'est pas la question ).
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE] [VILLE_RECHERCHE], et un bouton d'action. Je souhaite que
lorsque
le bouton d'action est pressÃf©, un filtre s'exerce de la maniÃf¨re suivante : par dÃf©faut (si le champ texte est "vide",
aucun filtre
ne soit exercÃf© sur le critÃf¨re, et si dans [VILLE_RECHERCHE] ou [NOM_RECHERCHE] du texte est saisi, un filtre s'exerce et
s'applique aux enregistrements contenant (et pas commenÃf§ant ni Ãf©tant exactement) le texte saisi...
J'ai essayÃf© sans succÃf¨s de passer par un formulaire gÃf©nÃf©rÃf© par une requÃfªte avec une condition where basÃf©e
sur la valeur des
champs. J'ai tentÃf© Ãf©galement quelques macros mais sans succÃf¨s jusqu'ici...
Quelqu'un aurait-il la gentillesse de m'aider Ãf comprendre comment construire cela ?
Cordialement,
Thomas B.
Super !!! Merci ENORMEMENT pour cette réponse on-ne-peut-plus complète !!!
J'avoue que je vais mettre un peu de temps pour la digérer entièrement, mais d'ici demain ca s'ra bon !
Juste 1 question que j'ai pas compris lors de mes lectures... Mon résultat final n'est pas un sous-formulaire mais le filtre du
formulaire sur lequel les champs Nom_Recherche & Cie sont...
La syntaxe est bien :
Me.Filter = strSQLSource
Me.FilerOn = True
?
Encore mille merci,
Thomas B.Saut
C'est simple, tu testes la présence de texte dans tes champs et tu montes ton critère.
'-------------------------------------------------
Private Sub btnFiltre_Click()
On Error Goto ErrorHere:
Dim strFiltre As String, strFiltreNom As String, strFiltreCP As String, strFiltreVille As String, strSQLSource as String
strFiltre = ""
strFiltreNom = pvsFiltreNom
strFiltreCP = pvsFiltreCP
strFiltreVille = pvsFiltreVille
If Len(strFiltreNom) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreNom
Else
strFiltre = strFiltreNom
End If
End If
If Len(strFiltreCP) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreCP
Else
strFiltre = strFiltreCP
End If
End If
If Len(strFiltreVille) > 0 Then
If Len(strFiltre) > 0 Then
strFiltre = strFiltre & " AND " & strFiltreVille
Else
strFiltre = strFiltreVille
End If
End If
If Len(strFiltre) > 0 Then
strSQLSource = "SELECT * FROM TaTable WHERE " & strFiltre & ";"
Else
strSQLSource = "SELECT * FROM TaTable;"
End If
'Si tes résultats sortent dans un ssForm
Me.NomSSForm.Form.RecordSource = strSQLSource
'Si tes résultats sortent dans une zone de liste
zdlResultatsFiltres = strSQLSource
'Sinon
Me.RecordSource = strSQLSource
Me.Requery
ExitHere:
Exit Sub
ErrorHere:
MsgBox Err.Number & " - " & Err.Description, vbOkOnly, "Erreur"
Resume ExitHere
End Sub
'-------------------------------------------------
Private Sub pvsFiltreNom() As String
pvsFiltreNom = ""
If Len(Nz(Nom_Recherche, ""))>0 Then pvsFiltreNom = "NOM Like '*" & Replace(Nom_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Private Sub pvsFiltreCP() As String
pvsFiltreCP = ""
If Len(Nz(CP_Recherche, ""))>0 Then pvsFiltreCP = "[CODE POSTAL] Like '*" & Replace(CP_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Private Sub pvsFiltreVille() As String
pvsFiltreVille = ""
If Len(Nz(Ville_Recherche, ""))>0 Then pvsFiltreVille = "VILLE Like '*" & Replace(Ville_Recherche, "'", "''") & "*'"
End Sub
'-------------------------------------------------
Ouala
Bye
Buddy
"Thomas B." <Thomas a écrit dans le message de
news:Bonjour Ãf tous,
DÃf©butant en access, je suis heurtÃf© au problÃf¨me suivant... J'ai un formulaire basÃf© sur une table comportant les
champs [NOM]
[CODE POSTAL] [VILLE] (ainsi que d'autres, mais ca n'est pas la question ).
J'ai par ailleurs 3 zones textes [NOM_RECHERCHE] [CP_RECHERCHE] [VILLE_RECHERCHE], et un bouton d'action. Je souhaite que
lorsque
le bouton d'action est pressÃf©, un filtre s'exerce de la maniÃf¨re suivante : par dÃf©faut (si le champ texte est "vide",
aucun filtre
ne soit exercÃf© sur le critÃf¨re, et si dans [VILLE_RECHERCHE] ou [NOM_RECHERCHE] du texte est saisi, un filtre s'exerce et
s'applique aux enregistrements contenant (et pas commenÃf§ant ni Ãf©tant exactement) le texte saisi...
J'ai essayÃf© sans succÃf¨s de passer par un formulaire gÃf©nÃf©rÃf© par une requÃfªte avec une condition where basÃf©e
sur la valeur des
champs. J'ai tentÃf© Ãf©galement quelques macros mais sans succÃf¨s jusqu'ici...
Quelqu'un aurait-il la gentillesse de m'aider Ãf comprendre comment construire cela ?
Cordialement,
Thomas B.