OVH Cloud OVH Cloud

requete sur résultat de requete ?

1 réponse
Avatar
Txl
Bonjour

Grace à raymond j'ai (enfin surtout lui) pas mal avancé dans ma base
immobilière.

Mainternant j'ai un autre léger probleme.

J'ai un form de recherche de biens à louer, je rentre la ville dans une
listre déroulante et ca m'affiche TOUS les bien à louer dans cette ville,
ensuite je rentre le type (studio, T2 T3....) et je voudrais que cela ne
m'affiche que les enregsitrements de la ville choisie et du type choisi.

Le problème c'est que comme pour afficher tous les enregistremùents de la
ville je suis obligé de faire un requete OR et pas AND ensuite quand je
choisis le type comme c'est un OR il garde tous les enresgistrements de
la ville meme si le tyep n'est pas bon.

Je ne veux pas faire une requete AND parce que sinon il faut entrer tous
les critères avant de lancer la recherche et je préfère partir d'un
affichage avec beaucoup de réponses que dans l'autre sens.

Donc la qesution serait, dois-je me baser sur les résultats du premier
critère (ville) pour appliquer une autre requete a ces résultats (le
type) ou existe-il une autre astuce pour contourner l'obstacle ?

petit example avec critère ville "aix"


Ville type
aix studio
aix T3
aix T2
aix ferme

résultat souhaité après application critère type "T2"

aix T2

Mais après avoir appliqué le 2° critère j'ai toujours l'ensemble des
résultats, c'est logique puisque la requete et en mode "OR"

Voila le texte de la requete, je précise que cette requete ne traite que
les locations, il y a une autre requete pour les ventes, d'ou le dernier
filtre sur select

SELECT tblannonce.surfhab, tblannonce.surfter, tblannonce.type,
tblannonce.ville, tblannonce.prix, tblannonce.dispo, tblannonce.charges,
tblannonce.chambre
FROM tblannonce
WHERE (((tblannonce.type)=[Formulaires]![frmrechercheloc]![Type] Or
(tblannonce.type) Is Null) OR ((tblannonce.ville)=[Formulaires]!
[frmrechercheloc]![Ville] Or (tblannonce.ville) Is Null) AND
((tblannonce.contrat)="Location"));


--
Visit my website for pinball machines for sale

www.huillier.com/Pinball

Email contact on the site

1 réponse

Avatar
Buddy
Salut

Requête sur résultat de requête : très difficile sans passer par du code.

Je pense qu'il faudrait suivre ton critère de manière dynamique. J'explique
:
Tu sélectionnes tes critères dans tes listes et tu utilises un bouton
Rafraîchir qui créera ton critère et te mettras à jour ton résultat.

Private Sub btnRafraichir_Click()
Dim strCritere As String, strSQL As String
'Tu balaies tes contrôles servant de critères et tu complètes strCritere
strCritere = ""
If Not IsNull(zdlmVilles) Then strCritere = strCritere & "Ville = '" &
zdlmVille & "' AND "
If Not IsNull(zdlmTypes) Then strCritere = strCritere & "Type = '" &
zdlmType & "' AND"
If Not IsNull(zdlmContrats) Then strCritere = strCritere & "Contrat = '" &
zdlmContrat & "' AND"
etc...
'Tu peux complexifier à loisir ton critère en ajoutant des OR

If Len(strCritere) > 0 Then
strSQL = "SELECT * FROM tblAnnonces"
Else
'On supprime le dernier AND
strCritere = Left(strCritere, Len(strCritere) - 4)
strSQL = "SELECT * FROM tblAnnonces WHERE " & strCritere
End If

zdlResultats.RecordSource = strSQL
zdlResultats.Requery
End Sub

J'espère t'avoir donnée une piste
Ouala
Bye
Buddy
www.mlxconseil.fr.st

"Txl" a écrit dans le message de
news:
Bonjour

Grace à raymond j'ai (enfin surtout lui) pas mal avancé dans ma base
immobilière.

Mainternant j'ai un autre léger probleme.

J'ai un form de recherche de biens à louer, je rentre la ville dans une
listre déroulante et ca m'affiche TOUS les bien à louer dans cette ville,
ensuite je rentre le type (studio, T2 T3....) et je voudrais que cela ne
m'affiche que les enregsitrements de la ville choisie et du type choisi.

Le problème c'est que comme pour afficher tous les enregistremùents de la
ville je suis obligé de faire un requete OR et pas AND ensuite quand je
choisis le type comme c'est un OR il garde tous les enresgistrements de
la ville meme si le tyep n'est pas bon.

Je ne veux pas faire une requete AND parce que sinon il faut entrer tous
les critères avant de lancer la recherche et je préfère partir d'un
affichage avec beaucoup de réponses que dans l'autre sens.

Donc la qesution serait, dois-je me baser sur les résultats du premier
critère (ville) pour appliquer une autre requete a ces résultats (le
type) ou existe-il une autre astuce pour contourner l'obstacle ?

petit example avec critère ville "aix"


Ville type
aix studio
aix T3
aix T2
aix ferme

résultat souhaité après application critère type "T2"

aix T2

Mais après avoir appliqué le 2° critère j'ai toujours l'ensemble des
résultats, c'est logique puisque la requete et en mode "OR"

Voila le texte de la requete, je précise que cette requete ne traite que
les locations, il y a une autre requete pour les ventes, d'ou le dernier
filtre sur select

SELECT tblannonce.surfhab, tblannonce.surfter, tblannonce.type,
tblannonce.ville, tblannonce.prix, tblannonce.dispo, tblannonce.charges,
tblannonce.chambre
FROM tblannonce
WHERE (((tblannonce.type)=[Formulaires]![frmrechercheloc]![Type] Or
(tblannonce.type) Is Null) OR ((tblannonce.ville)=[Formulaires]!
[frmrechercheloc]![Ville] Or (tblannonce.ville) Is Null) AND
((tblannonce.contrat)="Location"));


--
Visit my website for pinball machines for sale

www.huillier.com/Pinball

Email contact on the site