OVH Cloud OVH Cloud

Bloquer une sélection après validation (form)

5 réponses
Avatar
Luis
Bonjour,
J'ai un formulaire et lorsque je rentre une nouvelle=20
fiche, si je clique sur OK et ensuite sur suivant j'ai un=20
formulaire vide.
J'aimerai que lorsque je clique sur OK apr=E8s un nouvel=20
enregistrement ou une modif le formulaire s'ouvre sur la=20
fiche saisie ou modifi=E9e sans que l'on puisse aller sur=20
une fiche vide avec le bouton suivant.

si je met sur le bouton Ok=20
DoCmd.OpenQuery "Clients"
DoCmd.Close acQuery, "Clients"
DoCmd.ShowAllRecords

J'ai le premier enregistrement de la requ=EAte et non celui=20
que je vient de saisir ou de modifier.
Comment faire?

Luis

5 réponses

Avatar
Raymond [mvp]
Bonjour Luis.

qu'est-ce que tu nous fais là ?
DoCmd.OpenQuery "Clients"
DoCmd.Close acQuery, "Clients"
DoCmd.ShowAllRecords

que viennent faire le open suivi du close d'une requête dans un formulaire ?
le ShowAllRecords supprime tous les filtres de ton formulaire et
réinitialise le record source, donc le place sur le 1er enregistrement, tout
est normal.
--
@+
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


"Luis" a écrit dans le message de
news:2cf201c47e2b$75d1e540$
Bonjour,
J'ai un formulaire et lorsque je rentre une nouvelle
fiche, si je clique sur OK et ensuite sur suivant j'ai un
formulaire vide.
J'aimerai que lorsque je clique sur OK après un nouvel
enregistrement ou une modif le formulaire s'ouvre sur la
fiche saisie ou modifiée sans que l'on puisse aller sur
une fiche vide avec le bouton suivant.

si je met sur le bouton Ok
DoCmd.OpenQuery "Clients"
DoCmd.Close acQuery, "Clients"
DoCmd.ShowAllRecords

J'ai le premier enregistrement de la requête et non celui
que je vient de saisir ou de modifier.
Comment faire?

Luis
Avatar
Luis
Bonjour Raymond,
Effectivement
DoCmd.OpenQuery "Clients"
DoCmd.Close acQuery, "Clients"
Ne sont pas nécéssaires, je pensais que je pouvais
empécher que que le bouton suivant n'ouvre un formulaire
vide après la validation d'un nouvel enregistrement.
La fonction
DoCmd.ShowAllRecords
Empèche ça mais je me trouve avec la suppression de tous
les filtres.
Mon problème est comment, après validation d'un nouvel
enregistrement, le bouton suivant n'aille pas chercher un
enregistrement vide.
La commande suivant est comme ça:

On Error GoTo Err_SUIVANT_Click

DoCmd.GoToRecord , , acNext

Exit_SUIVANT_Click:
Exit Sub

Err_SUIVANT_Click:
msgbox "Dernier de la sélection"
Resume Exit_SUIVANT_Click

Alors comment faire?

Merci pour les remarques.
Luis
-----Message d'origine-----
Bonjour Luis.

qu'est-ce que tu nous fais là ?
DoCmd.OpenQuery "Clients"
DoCmd.Close acQuery, "Clients"
DoCmd.ShowAllRecords

que viennent faire le open suivi du close d'une requête
dans un formulaire ?

le ShowAllRecords supprime tous les filtres de ton
formulaire et

réinitialise le record source, donc le place sur le 1er
enregistrement, tout

est normal.
--
@+
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


"Luis" a écrit dans
le message de

news:2cf201c47e2b$75d1e540$
Bonjour,
J'ai un formulaire et lorsque je rentre une nouvelle
fiche, si je clique sur OK et ensuite sur suivant j'ai un
formulaire vide.
J'aimerai que lorsque je clique sur OK après un nouvel
enregistrement ou une modif le formulaire s'ouvre sur la
fiche saisie ou modifiée sans que l'on puisse aller sur
une fiche vide avec le bouton suivant.

si je met sur le bouton Ok
DoCmd.OpenQuery "Clients"
DoCmd.Close acQuery, "Clients"
DoCmd.ShowAllRecords

J'ai le premier enregistrement de la requête et non celui
que je vient de saisir ou de modifier.
Comment faire?

Luis


.



Avatar
Raymond [mvp]
dans la propriété autres de ton formulaire:

Cycle : Enregistrement en cours
et supprime le ShowAllRecords
--
@+
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


"Luis" a écrit dans le message de
news:32a701c47eaa$f82b8bc0$
Bonjour Raymond,
Effectivement
DoCmd.OpenQuery "Clients"
DoCmd.Close acQuery, "Clients"
Ne sont pas nécéssaires, je pensais que je pouvais
empécher que que le bouton suivant n'ouvre un formulaire
vide après la validation d'un nouvel enregistrement.
La fonction
DoCmd.ShowAllRecords
Empèche ça mais je me trouve avec la suppression de tous
les filtres.
Mon problème est comment, après validation d'un nouvel
enregistrement, le bouton suivant n'aille pas chercher un
enregistrement vide.
La commande suivant est comme ça:

On Error GoTo Err_SUIVANT_Click

DoCmd.GoToRecord , , acNext

Exit_SUIVANT_Click:
Exit Sub

Err_SUIVANT_Click:
msgbox "Dernier de la sélection"
Resume Exit_SUIVANT_Click

Alors comment faire?

Merci pour les remarques.
Luis
Avatar
Luis
Bonjour Raymond,
dans la propriété autres du formulaire
Cycle est déjà sur Enregistrement en cours
Mais sans le ShowAllRecords, après un nouvel
enregistrement le clique sur 'suivant' ouvre une fiche
vide.
Luis
-----Message d'origine-----
dans la propriété autres de ton formulaire:

Cycle : Enregistrement en cours
et supprime le ShowAllRecords
--
@+
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


"Luis" a écrit dans
le message de

news:32a701c47eaa$f82b8bc0$
Bonjour Raymond,
Effectivement
DoCmd.OpenQuery "Clients"
DoCmd.Close acQuery, "Clients"
Ne sont pas nécéssaires, je pensais que je pouvais
empécher que que le bouton suivant n'ouvre un formulaire
vide après la validation d'un nouvel enregistrement.
La fonction
DoCmd.ShowAllRecords
Empèche ça mais je me trouve avec la suppression de tous
les filtres.
Mon problème est comment, après validation d'un nouvel
enregistrement, le bouton suivant n'aille pas chercher un
enregistrement vide.
La commande suivant est comme ça:

On Error GoTo Err_SUIVANT_Click

DoCmd.GoToRecord , , acNext

Exit_SUIVANT_Click:
Exit Sub

Err_SUIVANT_Click:
msgbox "Dernier de la sélection"
Resume Exit_SUIVANT_Click

Alors comment faire?

Merci pour les remarques.
Luis


.



Avatar
Raymond [mvp]
C'est bien normal, le suivant du dernier est le nouvel enregistrement, où
veux-tu que next déplace le curseur ?
si tu ne veux pas que next ouvre un prochain enregistrement, tu passes à
false la propriété Me.AllowAdditions dans l'evènement Form_Dirty. ensuite tu
remets la possibilité sur un autre évènement. tout ça n'est pas très
logique.
--
@+
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


"Luis" a écrit dans le message de
news:38c601c47eed$bd953e00$
Bonjour Raymond,
dans la propriété autres du formulaire
Cycle est déjà sur Enregistrement en cours
Mais sans le ShowAllRecords, après un nouvel
enregistrement le clique sur 'suivant' ouvre une fiche
vide.
Luis