OVH Cloud OVH Cloud

Combo - limiter à liste

10 réponses
Avatar
cyberjc
Bonjour, j'utilise une combo sur un formulaire et les valeurs de cette combo
alimente un champs d'une table. J'ai limité le choix à la liste mais il se
trouve que les utilisateurs peuvent quand même effacer la valeur du contrôle.
Comment je peux faire pour éviter qu'ils tentent cette manip ? Merci

10 réponses

Avatar
Raymond [mvp]
Bonjour.

dans les propriétés du champ tu indiques: null interdit à oui, chaîne vide
autorisée à non.

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


"cyberjc" a écrit dans le message de
news:
Bonjour, j'utilise une combo sur un formulaire et les valeurs de cette
combo
alimente un champs d'une table. J'ai limité le choix à la liste mais il se
trouve que les utilisateurs peuvent quand même effacer la valeur du
contrôle.
Comment je peux faire pour éviter qu'ils tentent cette manip ? Merci


Avatar
cyberjc
Le champ est celui d'une table sql liée avec null interdit et je préfèrerai
gérer l'erreur avant le process de gestion des erreurs d'Access car trop
compliqué pour un utilisateur. Merci


Bonjour.

dans les propriétés du champ tu indiques: null interdit à oui, chaîne vide
autorisée à non.

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


"cyberjc" a écrit dans le message de
news:
Bonjour, j'utilise une combo sur un formulaire et les valeurs de cette
combo
alimente un champs d'une table. J'ai limité le choix à la liste mais il se
trouve que les utilisateurs peuvent quand même effacer la valeur du
contrôle.
Comment je peux faire pour éviter qu'ils tentent cette manip ? Merci







Avatar
Raymond [mvp]
à ce moment là tu testes sur l'événement perte de focus:

If Nz(Me.Numéro, "") = "" Then Erreur .........


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


"cyberjc" a écrit dans le message de
news:
Le champ est celui d'une table sql liée avec null interdit et je
préfèrerai
gérer l'erreur avant le process de gestion des erreurs d'Access car trop
compliqué pour un utilisateur. Merci



Avatar
cyberjc
Désolé, j'ai pas bien compris ...


à ce moment là tu testes sur l'événement perte de focus:

If Nz(Me.Numéro, "") = "" Then Erreur .........


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


"cyberjc" a écrit dans le message de
news:
Le champ est celui d'une table sql liée avec null interdit et je
préfèrerai
gérer l'erreur avant le process de gestion des erreurs d'Access car trop
compliqué pour un utilisateur. Merci








Avatar
Raymond [mvp]
sur la perte de focus sur le contrôle liste, tu vérifies que la valeur de la
liste soit différente de Null ou "" et dans ce cas tu exécutes la procédure
erreur.

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


"cyberjc" a écrit dans le message de
news:
Désolé, j'ai pas bien compris ...


à ce moment là tu testes sur l'événement perte de focus:

If Nz(Me.Numéro, "") = "" Then Erreur .........


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


"cyberjc" a écrit dans le message de
news:
Le champ est celui d'une table sql liée avec null interdit et je
préfèrerai
gérer l'erreur avant le process de gestion des erreurs d'Access car
trop
compliqué pour un utilisateur. Merci










Avatar
cyberjc
Merci Raymond mais je n'arrive pas à déclencher mon code avant le message
d'Access qui me dit que j'essaye d'affecter une valeur null à une variable de
type variant. J'ai essayé "sur sortie", "sur perte focus","sur changement",
"before update".


sur la perte de focus sur le contrôle liste, tu vérifies que la valeur de la
liste soit différente de Null ou "" et dans ce cas tu exécutes la procédure
erreur.

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


"cyberjc" a écrit dans le message de
news:
Désolé, j'ai pas bien compris ...


à ce moment là tu testes sur l'événement perte de focus:

If Nz(Me.Numéro, "") = "" Then Erreur .........


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


"cyberjc" a écrit dans le message de
news:
Le champ est celui d'une table sql liée avec null interdit et je
préfèrerai
gérer l'erreur avant le process de gestion des erreurs d'Access car
trop
compliqué pour un utilisateur. Merci















Avatar
Raymond [mvp]
dans la table, tu as vérifié tes options de champ ? avec possibilité
d'entrer null et chaîne vide ?

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


"cyberjc" a écrit dans le message de
news:
Merci Raymond mais je n'arrive pas à déclencher mon code avant le message
d'Access qui me dit que j'essaye d'affecter une valeur null à une variable
de
type variant. J'ai essayé "sur sortie", "sur perte focus","sur
changement",
"before update".


sur la perte de focus sur le contrôle liste, tu vérifies que la valeur de
la
liste soit différente de Null ou "" et dans ce cas tu exécutes la
procédure
erreur.

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


"cyberjc" a écrit dans le message de
news:
Désolé, j'ai pas bien compris ...


à ce moment là tu testes sur l'événement perte de focus:

If Nz(Me.Numéro, "") = "" Then Erreur .........


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


"cyberjc" a écrit dans le message
de
news:
Le champ est celui d'une table sql liée avec null interdit et je
préfèrerai
gérer l'erreur avant le process de gestion des erreurs d'Access car
trop
compliqué pour un utilisateur. Merci

















Avatar
cyberjc
Bon, voilà ce que j'ai fait ; j'ai autorisé le null dans ma table (sql liée)
maintenant si je teste if nz(cboOpe.value,"")="" then ===> je rentre dans ma
condition mais à ce moment comme sur mon form j'ai un "requery" after update,
cela m'enregistre la valeur null que je ne veux pas ??



dans la table, tu as vérifié tes options de champ ? avec possibilité
d'entrer null et chaîne vide ?

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


"cyberjc" a écrit dans le message de
news:
Merci Raymond mais je n'arrive pas à déclencher mon code avant le message
d'Access qui me dit que j'essaye d'affecter une valeur null à une variable
de
type variant. J'ai essayé "sur sortie", "sur perte focus","sur
changement",
"before update".


sur la perte de focus sur le contrôle liste, tu vérifies que la valeur de
la
liste soit différente de Null ou "" et dans ce cas tu exécutes la
procédure
erreur.

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


"cyberjc" a écrit dans le message de
news:
Désolé, j'ai pas bien compris ...


à ce moment là tu testes sur l'événement perte de focus:

If Nz(Me.Numéro, "") = "" Then Erreur .........


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


"cyberjc" a écrit dans le message
de
news:
Le champ est celui d'une table sql liée avec null interdit et je
préfèrerai
gérer l'erreur avant le process de gestion des erreurs d'Access car
trop
compliqué pour un utilisateur. Merci






















Avatar
Raymond [mvp]
dès que tu rentres dans ta condition, il faut que tu stoppes la suite et que
tu obliges la sélection d'une valeur. Changes d'événement et passes sur
beforeupdate et au lieu de tester la propriété value tu testes la propriété
Text et tu renvoies un cancel = true pour rester dans la saisie de la liste.

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


"cyberjc" a écrit dans le message de
news:
Bon, voilà ce que j'ai fait ; j'ai autorisé le null dans ma table (sql
liée)
maintenant si je teste if nz(cboOpe.value,"")="" then ===> je rentre dans
ma
condition mais à ce moment comme sur mon form j'ai un "requery" after
update,
cela m'enregistre la valeur null que je ne veux pas ??




Avatar
cyberjc
C'était bien mon requery after update du form qui me posait pb et pour la
combo, sur l'événement before update j'ai finalement fait :

If cboOpe.ListIndex = -1 Then
MsgBox "Selectionnez une valeur dans la liste !"
Undo
SendKeys "{F4}"

End If


dès que tu rentres dans ta condition, il faut que tu stoppes la suite et que
tu obliges la sélection d'une valeur. Changes d'événement et passes sur
beforeupdate et au lieu de tester la propriété value tu testes la propriété
Text et tu renvoies un cancel = true pour rester dans la saisie de la liste.

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


"cyberjc" a écrit dans le message de
news:
Bon, voilà ce que j'ai fait ; j'ai autorisé le null dans ma table (sql
liée)
maintenant si je teste if nz(cboOpe.value,"")="" then ===> je rentre dans
ma
condition mais à ce moment comme sur mon form j'ai un "requery" after
update,
cela m'enregistre la valeur null que je ne veux pas ??