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

Empêcher l'ouverture d'un État si 1 champ vide

5 réponses
Avatar
Butch
Bonjour,

Est-il possible d'empêcher l'ouverture d'un État (rapport) si un champ
précis (donnée) contenu dans cet état est vide (ne contient pas donnée)
alors que les autres champs peuvent en contenir quand même.

Je sais qu'il est possible de faire afficher un tel message si tous les
champs d'un état sont vides (propriété "Sur aucune donnée" de l'état). Mais
cela ne fonctionne pas si un seul champ (celui sur lequel la vérification
doit se faire) est vide alors que les autres champs contiennent des données.

Merci,
Butch

5 réponses

Avatar
3stone
Salut,

"Butch"
| Est-il possible d'empêcher l'ouverture d'un État (rapport) si un champ
| précis (donnée) contenu dans cet état est vide (ne contient pas donnée)
| alors que les autres champs peuvent en contenir quand même.
|
| Je sais qu'il est possible de faire afficher un tel message si tous les
| champs d'un état sont vides (propriété "Sur aucune donnée" de l'état).
Mais
| cela ne fonctionne pas si un seul champ (celui sur lequel la vérification
| doit se faire) est vide alors que les autres champs contiennent des
données.


Dans l'événement "sur ouverture" tu peux tester ta valeur et, le cas
échéant,
annuller cette ouverture par un "Cancel=True"

Plus "propre" serait de tester la valeur *avant* de demander l'ouverture
de l'état et si vide ne pas la demander...

un simple

if isnull(Dlookup("[champ],"[Table ou requête]")) then
' pas ouvrir
' msgBox "Pas de données"
else
docmd.openreport ...
end if

pourrait suffire.

A+
Pierre(3stone)
Avatar
Butch
Bonjour Pierre

Merci pour tes informations. Cependant, n'étant pas très familier avec le
VBA, te serait-il possible de m'indiquer la procédure qui pourrait être
placée dans la propriété "Sur ouverture" de l'état (je me sens plus à l'aise
avec celle-là je crois !) qui pourrait contrôler le champ vide et annuler
l'ouverture de l'état ? Il ne faut pas oublier que l'état contient d'autres
données (champs) qui eux ne sont pas nécessairement vides.

À titre d'informations supplémentaires, cet état est basé sur une requête
paramétrée demandant d'inscrire le nom d'un client pour produire un état au
nom de ce client seulement. L'état est produit en cliquant sur un bouton de
commande placé sur un formulaire de type "menu".

Merci encore,
Butch

"3stone" a écrit dans le message de news:
#
Salut,

"Butch"
| Est-il possible d'empêcher l'ouverture d'un État (rapport) si un champ
| précis (donnée) contenu dans cet état est vide (ne contient pas donnée)
| alors que les autres champs peuvent en contenir quand même.
|
| Je sais qu'il est possible de faire afficher un tel message si tous les
| champs d'un état sont vides (propriété "Sur aucune donnée" de l'état).
Mais
| cela ne fonctionne pas si un seul champ (celui sur lequel la
vérification

| doit se faire) est vide alors que les autres champs contiennent des
données.


Dans l'événement "sur ouverture" tu peux tester ta valeur et, le cas
échéant,
annuller cette ouverture par un "Cancel=True"

Plus "propre" serait de tester la valeur *avant* de demander l'ouverture
de l'état et si vide ne pas la demander...

un simple

if isnull(Dlookup("[champ],"[Table ou requête]")) then
' pas ouvrir
' msgBox "Pas de données"
else
docmd.openreport ...
end if

pourrait suffire.

A+
Pierre(3stone)




Avatar
3stone
Salut,

"Butch"
| Merci pour tes informations. Cependant, n'étant pas très familier avec le
| VBA, te serait-il possible de m'indiquer la procédure qui pourrait être
| placée dans la propriété "Sur ouverture" de l'état (je me sens plus à l'aise
| avec celle-là je crois !) qui pourrait contrôler le champ vide et annuler
| l'ouverture de l'état ? Il ne faut pas oublier que l'état contient d'autres
| données (champs) qui eux ne sont pas nécessairement vides.
|
| À titre d'informations supplémentaires, cet état est basé sur une requête
| paramétrée demandant d'inscrire le nom d'un client pour produire un état au
| nom de ce client seulement. L'état est produit en cliquant sur un bouton de
| commande placé sur un formulaire de type "menu".


J'ai dit une bêtisse ;-)
A l'ouverture les données se sont pas encore connues...
Il te faut donc vérifier dans la requête source de l'état.
Pour cela tu mets:

Cancel=isnull(Dlookup("[NomDuChamp]","[NomRequête]"))

A+
Pierre(3stone)
Avatar
Butch
Re-Bonjour Pierre,

Encore merci.

Il te faut donc vérifier dans la requête source de l'état.
Pour cela tu mets:

Cancel=isnull(Dlookup("[NomDuChamp]","[NomRequête]"))


Bien, je comprend la syntaxe du code que tu proposes mais voilà... où mettre
ce code ?
1. Dans l'événement "Sur Clic" du bouton de commande servant à ouvrir
l'état ?
2. Dans un "champ personnel" de la requête ?

D'après ce que tu m'as dit (ci-dessous), il ne peut pas se retrouver dans
une propriété de l'état lui-même.
A l'ouverture les données se sont pas encore connues...


Bon... tu vois, moi et le VBA !!! Merci si tu peux encore me fournir
d'autres informations.
Butch

Avatar
3stone
re,

"Butch"
| >Cancel=isnull(Dlookup("[NomDuChamp]","[NomRequête]"))
|
| Bien, je comprend la syntaxe du code que tu proposes mais voilà... où mettre
| ce code ?


Comme prévu, dans l'événement "Sur ouverture" de l'état...

A+
Pierre(3stone)