OVH Cloud OVH Cloud

Requête multicritères

3 réponses
Avatar
tom_saliou
Bonjour.

J'ai besoin d'aide sur la façon de réaliser une requête multicritères
de la façon que je souhaite

Explications : Dans mon formulaire , j'ai deux choix: soit je prend
toutes les valeurs d'un champ x de ma table soit je prend les valeurs
comprises entres 2 valeurs (Si l'une des options est coché, l'autre ne
l'est pas et vice versa.)

J'essaye de passer par le code pour le faire mais sans réussite

Merci d'avance pour votre aide.

3 réponses

Avatar
Gafish
Bonjour,

Tu dis essayer de le faire par le code, alors je te propose le bout de code
vba suivant :
Je suis parti du postulat que ta requête était déclenchée à partir d'un
formulaire ou tu aurais entré tes deux valeurs bornes (dans deux zones de
texte que j'ai appelé monMini et monMaxi). Cela se fait en fonction d'une
case à cocher appelé maCase

Dim dbsCurrent as database
Dim rstReq as recordset
Dim maRequete as string
set dbscurrent = opendatabase(currentdb.name)

If Me!maCase = -1 then
maRequete = "SELECT [monChamp] FROM [maTable] WHERE [monChamp]<" &
Me!monMaxi & " AND [monChamp] >" & monMini & ";"
Else
maRequete = "SELECT [monChamp] FROM [maTable];"
End If

Après il faudrait savoir ce que tu comptes faire du resultat de ta requête.


"Tom" a écrit dans le message de
news:
Bonjour.

J'ai besoin d'aide sur la façon de réaliser une requête multicritères
de la façon que je souhaite

Explications : Dans mon formulaire , j'ai deux choix: soit je prend
toutes les valeurs d'un champ x de ma table soit je prend les valeurs
comprises entres 2 valeurs (Si l'une des options est coché, l'autre ne
l'est pas et vice versa.)

J'essaye de passer par le code pour le faire mais sans réussite

Merci d'avance pour votre aide.


Avatar
Raymond [mvp]
Bonjour.

pour la requête multi-critère tu trouveras des idées sur la page :
http://access.vba.free.fr/selection_multiple.htm

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Tom" a écrit dans le message de
news:
Bonjour.

J'ai besoin d'aide sur la façon de réaliser une requête multicritères
de la façon que je souhaite

Explications : Dans mon formulaire , j'ai deux choix: soit je prend
toutes les valeurs d'un champ x de ma table soit je prend les valeurs
comprises entres 2 valeurs (Si l'une des options est coché, l'autre ne
l'est pas et vice versa.)

J'essaye de passer par le code pour le faire mais sans réussite

Merci d'avance pour votre aide.


Avatar
tom_saliou
bonjour,

par la suite , je souhaite ovurir un formulaire comprenant l'ensemble
des enregistrements répondant aux critères.
Le code réalisé est en acces basic, ne marche pas et je sais pas
pourquoi..

Mes données:
OptionCap2 : radio bouton permettant de choisir des valeurs comprises
entre Capacité1 et Capacité2.
EUROPE_simpl : table de données

Le code:

Private Sub OptionCap2_gotFocus()
RefreshQuery
End Sub

Private Sub RefreshQuery()

Dim sql As String

sql = "SELECT Numero,Nom_navire,Type_navire,Capacite_de_stockage_m3
FROM EUROPE_simpl Where EUROPE_simpl!Numero <> 0 "

If Me.OptionCap2 Then
sql = sql & "and EUROPE_simpl!Capacite_de_stockage_m3 between '" &
Me.Capacité1 & " ' and ' " & Me.capacité2 & "' "
End If

sql = sql & ";"

Me.resultat.RowSource = sql
Me.resultat.Requery

End Sub

Si une grosse erreur saute aux yeux de qq, ca serait super cool de me
le dire car étant pas spécialiste de Acces basic, je rame....Merci!

"Gafish" wrote in message news:<#tDOv#...
Bonjour,

Tu dis essayer de le faire par le code, alors je te propose le bout de code
vba suivant :
Je suis parti du postulat que ta requête était déclenchée à partir d'un
formulaire ou tu aurais entré tes deux valeurs bornes (dans deux zones de
texte que j'ai appelé monMini et monMaxi). Cela se fait en fonction d'une
case à cocher appelé maCase

Dim dbsCurrent as database
Dim rstReq as recordset
Dim maRequete as string
set dbscurrent = opendatabase(currentdb.name)

If Me!maCase = -1 then
maRequete = "SELECT [monChamp] FROM [maTable] WHERE [monChamp]<" &
Me!monMaxi & " AND [monChamp] >" & monMini & ";"
Else
maRequete = "SELECT [monChamp] FROM [maTable];"
End If

Après il faudrait savoir ce que tu comptes faire du resultat de ta requête.


"Tom" a écrit dans le message de
news:
Bonjour.

J'ai besoin d'aide sur la façon de réaliser une requête multicritères
de la façon que je souhaite

Explications : Dans mon formulaire , j'ai deux choix: soit je prend
toutes les valeurs d'un champ x de ma table soit je prend les valeurs
comprises entres 2 valeurs (Si l'une des options est coché, l'autre ne
l'est pas et vice versa.)

J'essaye de passer par le code pour le faire mais sans réussite

Merci d'avance pour votre aide.