OVH Cloud OVH Cloud

FORCER LA SAISIE PARMI 4 POSSIBILITES

9 réponses
Avatar
yves
Je souhaite dans un formulaire obligé de saisir une case à cocher parmi 4
possibilités avant de passer à l'enregistrement suivant
Merci
YVES

9 réponses

Avatar
3stone
Salut,

"yves"
| Je souhaite dans un formulaire obligé de saisir une case à cocher parmi 4
| possibilités avant de passer à l'enregistrement suivant


Si tes cases à cocher se nomme C1, C2, C3 et C4
tu peux mettre dans l'avant mise à jour du formulaire :

if (c1 + c2 + c3 + c4) = 0 then
msgbox "faites votre choix..."
cancel = true
end if


PS:
on profite ici du fait qu'une case non cochée vaut zéro !

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
yves
Merci 3stone tout fonctionne à merveille mais comme je lance un autre
formulaire à la fermeture de mon formulaire ou les cases à cocher sont
présentent je ne reste pas bloque sur mon formulaire et l'enregistrement est
perdue.


Salut,

"yves"
| Je souhaite dans un formulaire obligé de saisir une case à cocher parmi 4
| possibilités avant de passer à l'enregistrement suivant


Si tes cases à cocher se nomme C1, C2, C3 et C4
tu peux mettre dans l'avant mise à jour du formulaire :

if (c1 + c2 + c3 + c4) = 0 then
msgbox "faites votre choix..."
cancel = true
end if


PS:
on profite ici du fait qu'une case non cochée vaut zéro !

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
3stone
Salut,

"yves"
| mais comme je lance un autre
| formulaire à la fermeture de mon formulaire ou les cases à cocher sont
| présentent je ne reste pas bloque sur mon formulaire et l'enregistrement est
| perdue.

Tu peux me la refaire celle là ? ;-))



Si ce que je devine est correct... tu dois avoir mal placé le code !

| > Si tes cases à cocher se nomme C1, C2, C3 et C4
| > tu peux mettre dans l'avant mise à jour du formulaire :


car j'avais dit : dans *l'avant mise à jour* du formulaire

et ne pas oublier le => Cancel = True

| > if (c1 + c2 + c3 + c4) = 0 then
| > msgbox "faites votre choix..."
| > cancel = true
| > end if


Avec ca, tu reste dans le formulaire, c'est prévu pour :o)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
yves
Bonjour
J'ai bien pracé le code avec une [Procédure événementielle]sur la propriété
avant mise à jour
Private Sub Form_BeforeUpdate(Cancel As Integer)
If (TYPE_COLLECTIVITE + TYPE_ASSOCIATION + TYPE_PARTICULIER + TYPE_SOCIETE)
= 0 Then
MsgBox "faites votre choix...cocher collectivite ou association ou
particulier ou societe"
Cancel = True
End If

End Sub
Je ne vois pas où est l'erreur
Merci


Salut,

"yves"
| mais comme je lance un autre
| formulaire à la fermeture de mon formulaire ou les cases à cocher sont
| présentent je ne reste pas bloque sur mon formulaire et l'enregistrement est
| perdue.

Tu peux me la refaire celle là ? ;-))



Si ce que je devine est correct... tu dois avoir mal placé le code !

| > Si tes cases à cocher se nomme C1, C2, C3 et C4
| > tu peux mettre dans l'avant mise à jour du formulaire :


car j'avais dit : dans *l'avant mise à jour* du formulaire

et ne pas oublier le => Cancel = True

| > if (c1 + c2 + c3 + c4) = 0 then
| > msgbox "faites votre choix..."
| > cancel = true
| > end if


Avec ca, tu reste dans le formulaire, c'est prévu pour :o)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
3stone
re,

"yves"
| J'ai bien pracé le code avec une [Procédure événementielle]sur la propriété
| avant mise à jour
| Private Sub Form_BeforeUpdate(Cancel As Integer)
| If (TYPE_COLLECTIVITE + TYPE_ASSOCIATION + TYPE_PARTICULIER + TYPE_SOCIETE)
| = 0 Then
| MsgBox "faites votre choix...cocher collectivite ou association ou
| particulier ou societe"
| Cancel = True
| End If
|
| End Sub
| Je ne vois pas où est l'erreur


Et donc cela fonctionne, non ?

Quelle est l'erreur dont tu parles ? (je n'ai pas compris l'histoire de l'autre formulaire...)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
yves
Salut
La procédure fonctionne bien mais en faite j'ai deux formulaires un
formulaire CLIENT et un formulaire SAV pour naviguer de l'un à l'autre je
lance une macro dans chaque formulaire.
Dans le formulaire client 4 cases à cocher me permettent donc de
sélectionner le type de client si j'oublie de cocher le type de client je
lance la procedure que tu m'as donné. En saisissant mon client si je n'ai pas
coché la case et que je lance la macro pour ouvrir le formulaire SAV j'ouvre
bien mon formulaire et l'erreur de la boite de dialogue : "faites votre
choix...cocher collectivite ou association ou
| particulier ou societe" s'affiche en meme temps que l'ouverture du formulaire SAV et comme ma macro ferme le formulaire CLIENT, j'ai perdu mon client et un numéro auto .
Merci



re,

"yves"
| J'ai bien pracé le code avec une [Procédure événementielle]sur la propriété
| avant mise à jour
| Private Sub Form_BeforeUpdate(Cancel As Integer)
| If (TYPE_COLLECTIVITE + TYPE_ASSOCIATION + TYPE_PARTICULIER + TYPE_SOCIETE)
| = 0 Then
| MsgBox "faites votre choix...cocher collectivite ou association ou
| particulier ou societe"
| Cancel = True
| End If
|
| End Sub
| Je ne vois pas où est l'erreur


Et donc cela fonctionne, non ?

Quelle est l'erreur dont tu parles ? (je n'ai pas compris l'histoire de l'autre formulaire...)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
3stone
re,

"yves"
| La procédure fonctionne bien mais en faite j'ai deux formulaires un
| formulaire CLIENT et un formulaire SAV pour naviguer de l'un à l'autre je
| lance une macro dans chaque formulaire.
| Dans le formulaire client 4 cases à cocher me permettent donc de
| sélectionner le type de client si j'oublie de cocher le type de client je
| lance la procedure que tu m'as donné. En saisissant mon client si je n'ai pas
| coché la case et que je lance la macro pour ouvrir le formulaire SAV j'ouvre
| bien mon formulaire et l'erreur de la boite de dialogue : "faites votre
| choix...cocher collectivite ou association ou
| > | particulier ou societe" s'affiche en meme temps que l'ouverture du formulaire SAV et comme ma
macro ferme le formulaire CLIENT, j'ai perdu mon client et un numéro auto .


Tu utilise des "macros" dans l'onglet "Macros" ?

Si oui, il n'est pas heureux de mélanger les macros et les modules de code VBA
Les macros étant ingérables, surtout au niveau de la gestion d'erreur.
Tu devrais essayer de modifier ta façon de faire...


Bon...
Ton bouton qui ouvre l'autre formulaire doit tenir compte de ce qui se passe
dans ton formulaire...

Crée le bouton avec l'assistant et modifie le code pour obtenir ceci:


Dim stDocName As String
Dim stLinkCriteria As String

If (c1 + c2 + c3 + c4) = 0 Then
MsgBox "pas coché..."
Exit Sub
Else

stDocName = "Nom du formulaire"
DoCmd.OpenForm stDocName, , , stLinkCriteria

End If


Il y a plus élégant... mais cela bon ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
yves
Re bonjour
Et oui j'utilise des macros mélangées avec des modules , en faite je ne
savais pas je vais essayer ta modif ce soir
Merci encore
Yves



re,

"yves"
| La procédure fonctionne bien mais en faite j'ai deux formulaires un
| formulaire CLIENT et un formulaire SAV pour naviguer de l'un à l'autre je
| lance une macro dans chaque formulaire.
| Dans le formulaire client 4 cases à cocher me permettent donc de
| sélectionner le type de client si j'oublie de cocher le type de client je
| lance la procedure que tu m'as donné. En saisissant mon client si je n'ai pas
| coché la case et que je lance la macro pour ouvrir le formulaire SAV j'ouvre
| bien mon formulaire et l'erreur de la boite de dialogue : "faites votre
| choix...cocher collectivite ou association ou
| > | particulier ou societe" s'affiche en meme temps que l'ouverture du formulaire SAV et comme ma
macro ferme le formulaire CLIENT, j'ai perdu mon client et un numéro auto .


Tu utilise des "macros" dans l'onglet "Macros" ?

Si oui, il n'est pas heureux de mélanger les macros et les modules de code VBA
Les macros étant ingérables, surtout au niveau de la gestion d'erreur.
Tu devrais essayer de modifier ta façon de faire...


Bon...
Ton bouton qui ouvre l'autre formulaire doit tenir compte de ce qui se passe
dans ton formulaire...

Crée le bouton avec l'assistant et modifie le code pour obtenir ceci:


Dim stDocName As String
Dim stLinkCriteria As String

If (c1 + c2 + c3 + c4) = 0 Then
MsgBox "pas coché..."
Exit Sub
Else

stDocName = "Nom du formulaire"
DoCmd.OpenForm stDocName, , , stLinkCriteria

End If


Il y a plus élégant... mais cela bon ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/







Avatar
yves
Merci encore 3stone ton aide a été très efficace et la procédure fonctionne
parfaitement maintenant, je vais écouter tes conseils et suement laisser
tomber macros ton code est bien plus rapide.
A bientôt
Yves



re,

"yves"
| La procédure fonctionne bien mais en faite j'ai deux formulaires un
| formulaire CLIENT et un formulaire SAV pour naviguer de l'un à l'autre je
| lance une macro dans chaque formulaire.
| Dans le formulaire client 4 cases à cocher me permettent donc de
| sélectionner le type de client si j'oublie de cocher le type de client je
| lance la procedure que tu m'as donné. En saisissant mon client si je n'ai pas
| coché la case et que je lance la macro pour ouvrir le formulaire SAV j'ouvre
| bien mon formulaire et l'erreur de la boite de dialogue : "faites votre
| choix...cocher collectivite ou association ou
| > | particulier ou societe" s'affiche en meme temps que l'ouverture du formulaire SAV et comme ma
macro ferme le formulaire CLIENT, j'ai perdu mon client et un numéro auto .


Tu utilise des "macros" dans l'onglet "Macros" ?

Si oui, il n'est pas heureux de mélanger les macros et les modules de code VBA
Les macros étant ingérables, surtout au niveau de la gestion d'erreur.
Tu devrais essayer de modifier ta façon de faire...


Bon...
Ton bouton qui ouvre l'autre formulaire doit tenir compte de ce qui se passe
dans ton formulaire...

Crée le bouton avec l'assistant et modifie le code pour obtenir ceci:


Dim stDocName As String
Dim stLinkCriteria As String

If (c1 + c2 + c3 + c4) = 0 Then
MsgBox "pas coché..."
Exit Sub
Else

stDocName = "Nom du formulaire"
DoCmd.OpenForm stDocName, , , stLinkCriteria

End If


Il y a plus élégant... mais cela bon ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/