OVH Cloud OVH Cloud

Existe-t-il un NOT NULL ?

11 réponses
Avatar
Styx94
Bonjour =E0 tous !

Je m'explique plus en d=E9tail. Pour commencer, j'utilise=20
ACCESS97.=20
Je suis en train de faire un formulaire de filtre sur une=20
table avec de multiples entr=E9es. En gros j'utilises des=20
variables que je remplis par les entr=E9es (par exemple,=20
j'ai un champs nom et si j'entre quelque chose via une=20
liste d=E9roulante).
Donc sur l'=E9venement clic de ma liste d=E9roulante, je=20
remplis ma variable avec le nom de la liste. La personne=20
devrait avoir ou non le choix de cliquer sur telle ou=20
telle liste pour affiner ou non sa recherche. Jusque l=E0 =E7a=20
va. Je cr=E9e une requ=EAte et en crit=E8re je mets le nom de ma=20
fonction

la fonction est toute simple :

Public Function recup_type()
recup_type =3D g_type
End Function

J'en ai cr=E9=E9 une pour chaque type (nom, ville par exemple).

Mon probl=E8me est le suivant : si l'utilisateur n'utilise=20
pas toutes les listes d=E9roulantes de filtre, ma variable=20
prend la valeur null. Ce que j'aimerais, c'est que, si=20
j'ai une valeur null dans ma variable, que je transforme=20
cette valeur soit en non null (pour tout afficher) soit=20
dire que le crit=E8re de ma requ=EAte n'est pas =E0 utiliser.

Est-ce que cela est possible ou faut-il utiliser une autre=20
m=E9thode ?

Merci d'avance pour vos r=E9ponses.

10 réponses

1 2
Avatar
Raymond [mvp]
Bonjour.

sur la ligne critère de ta requête ( en mode création) tu peux indiquer
Comme au lieu de = et indiquer le joker * pour prendre tout.
exemple
Comme [Formulaires]![Formulaire1]![Numéro] & "*"
si numéro est null ça donnera Comme * , donc tous les enregistrements.
en sql ça donnera:
Like [Formulaires]![Formulaire1]![Numéro] & "*"));
--
@+
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


"Styx94" a écrit dans le message de
news:4d2201c4806f$3bd35f90$
Bonjour à tous !

Je m'explique plus en détail. Pour commencer, j'utilise
ACCESS97.
Je suis en train de faire un formulaire de filtre sur une
table avec de multiples entrées. En gros j'utilises des
variables que je remplis par les entrées (par exemple,
j'ai un champs nom et si j'entre quelque chose via une
liste déroulante).
Donc sur l'évenement clic de ma liste déroulante, je
remplis ma variable avec le nom de la liste. La personne
devrait avoir ou non le choix de cliquer sur telle ou
telle liste pour affiner ou non sa recherche. Jusque là ça
va. Je crée une requête et en critère je mets le nom de ma
fonction

la fonction est toute simple :

Public Function recup_type()
recup_type = g_type
End Function

J'en ai créé une pour chaque type (nom, ville par exemple).

Mon problème est le suivant : si l'utilisateur n'utilise
pas toutes les listes déroulantes de filtre, ma variable
prend la valeur null. Ce que j'aimerais, c'est que, si
j'ai une valeur null dans ma variable, que je transforme
cette valeur soit en non null (pour tout afficher) soit
dire que le critère de ma requête n'est pas à utiliser.

Est-ce que cela est possible ou faut-il utiliser une autre
méthode ?

Merci d'avance pour vos réponses.
Avatar
Styx94
Merci beaucoup Raymond, le "Comme" m'a sauvé !
Encore merci

-----Message d'origine-----
Bonjour.

sur la ligne critère de ta requête ( en mode création)
tu peux indiquer

Comme au lieu de = et indiquer le joker * pour prendre
tout.

exemple
Comme [Formulaires]![Formulaire1]![Numéro] & "*"
si numéro est null ça donnera Comme * , donc tous les
enregistrements.

en sql ça donnera:
Like [Formulaires]![Formulaire1]![Numéro] & "*"));
--
@+
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


"Styx94" a écrit
dans le message de

news:4d2201c4806f$3bd35f90$
Bonjour à tous !

Je m'explique plus en détail. Pour commencer, j'utilise
ACCESS97.
Je suis en train de faire un formulaire de filtre sur une
table avec de multiples entrées. En gros j'utilises des
variables que je remplis par les entrées (par exemple,
j'ai un champs nom et si j'entre quelque chose via une
liste déroulante).
Donc sur l'évenement clic de ma liste déroulante, je
remplis ma variable avec le nom de la liste. La personne
devrait avoir ou non le choix de cliquer sur telle ou
telle liste pour affiner ou non sa recherche. Jusque là ça
va. Je crée une requête et en critère je mets le nom de ma
fonction

la fonction est toute simple :

Public Function recup_type()
recup_type = g_type
End Function

J'en ai créé une pour chaque type (nom, ville par
exemple).


Mon problème est le suivant : si l'utilisateur n'utilise
pas toutes les listes déroulantes de filtre, ma variable
prend la valeur null. Ce que j'aimerais, c'est que, si
j'ai une valeur null dans ma variable, que je transforme
cette valeur soit en non null (pour tout afficher) soit
dire que le critère de ma requête n'est pas à utiliser.

Est-ce que cela est possible ou faut-il utiliser une autre
méthode ?

Merci d'avance pour vos réponses.


.



Avatar
Dan
"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

sur la ligne critère de ta requête ( en mode création) tu peux indiquer
Comme au lieu de = et indiquer le joker * pour prendre tout.
exemple
Comme [Formulaires]![Formulaire1]![Numéro] & "*"
si numéro est null ça donnera Comme * , donc tous les enregistrements.
en sql ça donnera:
Like [Formulaires]![Formulaire1]![Numéro] & "*"));
--
@+



Question subsidiaire :

Si l'utilisateur, après avoir renseigné la liste, veut à nouveau toutes les
valeurs, peut-on forcer une liste à reprendre une valeur nulle ?

A+ Dan

Avatar
Raymond [mvp]
tu vides le contrôle utilisé ( tu effaces la valeur )

--
@+
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


"Dan" a écrit dans le message de
news:cffu08$nc8$
Question subsidiaire :

Si l'utilisateur, après avoir renseigné la liste, veut à nouveau toutes
les

valeurs, peut-on forcer une liste à reprendre une valeur nulle ?

A+ Dan




Avatar
Dan
Hum, je sens que je vais devoir modifier tous mes menus d'éditions !!!
Juste un petit souci (A97 pour l'instant) : le message "Type incompatible"
lorsque je vide la liste...

A+ Dan
Avatar
Raymond [mvp]
Pourquoi ? qu'appelles-tu liste.
une liste (contrôle listbox) peut avoir une valeur nulle. pourquoi
incompatible ????

--
@+
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


"Dan" a écrit dans le message de
news:cfg292$jca$
Hum, je sens que je vais devoir modifier tous mes menus d'éditions !!!
Juste un petit souci (A97 pour l'instant) : le message "Type incompatible"
lorsque je vide la liste...

A+ Dan





Avatar
Dan
Ben oui, je suis bien d'accord avec ta question !

Il s'agit d'une liste des villes, qui va taper dans une table des villes et
ajoute une valeur " Toutes" pour un Id à -1:

SELECT [Villes].[V_Code] as id, [V_Libellé] As Nom, 2 As OrdreTri FROM
[Villes] UNION SELECT -1 As Id, " Toutes" As Nom, 2 As OrdreTri FROM
[Villes] ORDER BY OrdreTri, Nom;

- colonne 1 : V_Code, clé numauto, largeur 0
- colonne 2 : V_Libellé, texte, largeur 8
- colonne liée = 2
- valeur par défaut : -1

Alors oui, pourquoi type incompatible, n'est-ce-pas ?!

Peut-être à cause de la propriété "Limiter à liste" qui est à oui ...?
Mais si je veux la passer à non, je ne peux pas laisser la largeur de la
première colonne à 0, et ça, ça m'embête bien, évidemment...

Pour mes Menus d'éditions, j'ai bien une solution qui marche, mais celle là
serait plus élégante, plus rapide, et plus facile à maintenir...

A+ Dan
Avatar
Dan
Pardon : colonne liée = 1
Dan
Avatar
Raymond [mvp]
Tu n'as pas deviné tout seul qu'il fallait mettre tous dans la liste ( ce
que tu n'avais pas dit). Regarde sur la doc où tu as pris le "tous" , il est
sûrement indiqué comment le traiter dans la requête.

--
@+
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


"Dan" a écrit dans le message de
news:cfg339$jbf$
Pardon : colonne liée = 1
Dan




Avatar
Dan
"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

sur la ligne critère de ta requête ( en mode création) tu peux indiquer
Comme au lieu de = et indiquer le joker * pour prendre tout.
exemple
Comme [Formulaires]![Formulaire1]![Numéro] & "*"
si numéro est null ça donnera Comme * , donc tous les enregistrements.
en sql ça donnera:
Like [Formulaires]![Formulaire1]![Numéro] & "*"));
--
@+
Raymond Access MVP



Bonjour à tous, bonjour Raymond,

N'y-a-t'il pas un petit hic :

Pour une valeur sélectionnée dans la liste qui serait égale à 1, par
exemple, ne risque-t'on pas de récupérer toutes les valeurs qui contiennent
1 en première position ?

A+ Dan

1 2