OVH Cloud OVH Cloud

Enregistrement nouveau

8 réponses
Avatar
jv
Bonjour,
Dans un formulaire, je souhaite, à l'aide d'un bouton, enregistrer ce qui
vient d'être saisi et me placer sur l'enregistrement vierge suivant.
Quelle la programmation VBA correspondante.
Cela revient à écrire en VBA ce que fait le bouton de déplacement >*.
Merci d'avance.

8 réponses

Avatar
Raymond [mvp]
Bonjour.

la normalité voudrait que l'on fasse:
DoCmd.RunCommand acCmdSaveRecord
DoEvents
DoCmd.GoToRecord , , acNewRec

si tu fais
DoCmd.GoToRecord , , acNewRec
tu obtiendras le même résultat mais en cas d'erreur il est possible qu'on ne
puisse pas affecter visuellement une erreur sur la bonne fonction car tout
sera regroupé.
--
@+
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


"jv" a écrit dans le message de
news:cer552$lqu$
Bonjour,
Dans un formulaire, je souhaite, à l'aide d'un bouton, enregistrer ce qui
vient d'être saisi et me placer sur l'enregistrement vierge suivant.
Quelle la programmation VBA correspondante.
Cela revient à écrire en VBA ce que fait le bouton de déplacement >*.
Merci d'avance.




Avatar
jv
Merci, Raymond,
mais cela ne va pas : c'est la raison pour laquelle j'avais envoyé ce
message.

1. Si j'écris :
DoCmd.RunCommand acCmdSaveRecord
DoEvents
DoCmd.GoToRecord , , acNewRec
J'ai le message "L'action RunCommand a été annulée"
L'enregistrement s'effectue
Le formulaire ne se positionne pas sur un enregistrement vierge

2.- Si j'écris
DoCmd.GoToRecord , , acNewRec
J'ai le message "Impossible d'atteindre l'enregistrement spécifié"
L'enregistrement s'effectue
Le formulaire ne se positionne pas sur un enregistrement vierge



"Raymond [mvp]" a écrit dans le message news:

Bonjour.

la normalité voudrait que l'on fasse:
DoCmd.RunCommand acCmdSaveRecord
DoEvents
DoCmd.GoToRecord , , acNewRec

si tu fais
DoCmd.GoToRecord , , acNewRec
tu obtiendras le même résultat mais en cas d'erreur il est possible qu'on
ne

puisse pas affecter visuellement une erreur sur la bonne fonction car tout
sera regroupé.
--
@+
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


"jv" a écrit dans le message de
news:cer552$lqu$
Bonjour,
Dans un formulaire, je souhaite, à l'aide d'un bouton, enregistrer ce
qui


vient d'être saisi et me placer sur l'enregistrement vierge suivant.
Quelle la programmation VBA correspondante.
Cela revient à écrire en VBA ce que fait le bouton de déplacement >*.
Merci d'avance.








Avatar
Raymond [mvp]
Vérifie que la propriété ajout autorisé soit à oui. Il ne faut pas que la
requête utilisée soit de type regroupement ou union par exemple ce qui
interdit toute saisie ainsi que s'il manque des données pour saisir
l'ensemble des données indispensables sur toutes les tables.

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


"jv" a écrit dans le message de
news:cer8gk$k2s$
Merci, Raymond,
mais cela ne va pas : c'est la raison pour laquelle j'avais envoyé ce
message.

1. Si j'écris :
DoCmd.RunCommand acCmdSaveRecord
DoEvents
DoCmd.GoToRecord , , acNewRec
J'ai le message "L'action RunCommand a été annulée"
L'enregistrement s'effectue
Le formulaire ne se positionne pas sur un enregistrement vierge

2.- Si j'écris
DoCmd.GoToRecord , , acNewRec
J'ai le message "Impossible d'atteindre l'enregistrement spécifié"
L'enregistrement s'effectue
Le formulaire ne se positionne pas sur un enregistrement vierge


Avatar
jv
La propriété ajout autorisé est à oui.
C'est un formulaire qui est en jeu, directement branché sur une table.

"Raymond [mvp]" a écrit dans le message news:

Vérifie que la propriété ajout autorisé soit à oui. Il ne faut pas que la
requête utilisée soit de type regroupement ou union par exemple ce qui
interdit toute saisie ainsi que s'il manque des données pour saisir
l'ensemble des données indispensables sur toutes les tables.

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


"jv" a écrit dans le message de
news:cer8gk$k2s$
Merci, Raymond,
mais cela ne va pas : c'est la raison pour laquelle j'avais envoyé ce
message.

1. Si j'écris :
DoCmd.RunCommand acCmdSaveRecord
DoEvents
DoCmd.GoToRecord , , acNewRec
J'ai le message "L'action RunCommand a été annulée"
L'enregistrement s'effectue
Le formulaire ne se positionne pas sur un enregistrement vierge

2.- Si j'écris
DoCmd.GoToRecord , , acNewRec
J'ai le message "Impossible d'atteindre l'enregistrement spécifié"
L'enregistrement s'effectue
Le formulaire ne se positionne pas sur un enregistrement vierge






Avatar
Raymond [mvp]
je ne sais plus.

propriété à vérifier:
type recordset : Feuille de réponse dynamique ?
peux-tu entrer des données dans la table directement ?
si tu trouves pas, peux-tu m'envoyer une partie de ta table par mail ?
--
@+
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


"jv" a écrit dans le message de
news:cer97n$lr9$
La propriété ajout autorisé est à oui.
C'est un formulaire qui est en jeu, directement branché sur une table.

"Raymond [mvp]" a écrit dans le message news:

Vérifie que la propriété ajout autorisé soit à oui. Il ne faut pas que
la


requête utilisée soit de type regroupement ou union par exemple ce qui
interdit toute saisie ainsi que s'il manque des données pour saisir
l'ensemble des données indispensables sur toutes les tables.




Avatar
jv
Type recordset : OK.

Merci, Raymond.

Oui, je peux t'envoyer un petit extrait de ma table.
A quel mail ?
Est ce que j'envoie la table et le formulaire dans une mini base ?
Je suis en Access 2000.

"Raymond [mvp]" a écrit dans le message news:

je ne sais plus.

propriété à vérifier:
type recordset : Feuille de réponse dynamique ?
peux-tu entrer des données dans la table directement ?
si tu trouves pas, peux-tu m'envoyer une partie de ta table par mail ?
--
@+
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


"jv" a écrit dans le message de
news:cer97n$lr9$
La propriété ajout autorisé est à oui.
C'est un formulaire qui est en jeu, directement branché sur une table.

"Raymond [mvp]" a écrit dans le message
news:



Vérifie que la propriété ajout autorisé soit à oui. Il ne faut pas que
la


requête utilisée soit de type regroupement ou union par exemple ce qui
interdit toute saisie ainsi que s'il manque des données pour saisir
l'ensemble des données indispensables sur toutes les tables.








Avatar
Raymond [mvp]
ok pour mini table et formulaire
adresse dans mes messages et enlève le XYZ..

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


"jv" a écrit dans le message de
news:cerah6$3al$
Type recordset : OK.

Merci, Raymond.

Oui, je peux t'envoyer un petit extrait de ma table.
A quel mail ?
Est ce que j'envoie la table et le formulaire dans une mini base ?
Je suis en Access 2000.


Avatar
Raymond [mvp]
réponse donnée par mail:

Bien reçu la base.

fais ces modifs:
remplacer la sub : Private Sub Form_AfterInsert()
par:
Private Sub Form_BeforeInsert(Cancel As Integer)
avec le même code.

à ta place je le mettrais même dans l'événement : Private Sub
Form_BeforeUpdate(Cancel As Integer)
ce qui couvrirait tous les besoins.

dans l'évènement Enregistrement_Click, la procédure fait double emploi, la
supprimer.
ne mettre que:
Private Sub Enregistrement_Click()
DoCmd.RunCommand acCmdSaveRecord
DoEvents
DoCmd.GoToRecord , , acNewRec
End Sub

ça va aller beaucoup mieux maintenant.

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


"Raymond [mvp]" a écrit dans le message de
news:
ok pour mini table et formulaire
adresse dans mes messages et enlève le XYZ..

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


"jv" a écrit dans le message de
news:cerah6$3al$
Type recordset : OK.

Merci, Raymond.

Oui, je peux t'envoyer un petit extrait de ma table.
A quel mail ?
Est ce que j'envoie la table et le formulaire dans une mini base ?
Je suis en Access 2000.