Sauvegarder l'enregistrement
Sur un formulaire, je souhaiterais créer un bouton qui puisse valider les données (sauvegarder l’enregistrement)….
Solution manuelle
Vous savez sans doute que pour forcer un enregistrement manuel de la saisie en cours, vous pouvez :
- Appuyer sur la combinaison de touche
Majuscule
+Entrée
. - Sur Access 97 à 2003 : utiliser le menu Enregistrements / Sauvegarder l’enregistrement.
- Sur Access 2007 : activer l’onglet Accueil du ruban, puis cliquer sur le bouton Enregistrer.
La technique s’applique à tous les objets d’Access où vous pouvez faire de la saisie : tables, requêtes, formulaires.
Solution VBA
Si vous souhaitez automatiser l’opération à l’aide d’un bouton (ça ne peut donc se faire que sur un formulaire) :
- Ouvrez votre formulaire en mode Création.
- Placez un bouton de commande sur ce formulaire, et faites apparaître ses propriétés.
- Dans l’événement
Sur clic
(Click
), tapez le code suivant :
1 |
DoCmd.RunCommand acCmdSaveRecord |
DoCmd.OpenReport
, pensez à placer un DoCmd.RunCommand acCmdSaveRecord
avant. De cette manière, vous êtes sûr que les données imprimées sur l’état sont à jour.
Bonjour,
Ce code pose problème, si l’on insère le code pour contourner le message d’erreur 3022.
Cordialement.
Est-ce que la ligne de VBA est tapée au bon endroit ?
(entre le Sub et End Sub de l’événement VBA ?)
Bonjour,
Gestion d’une bibliothèque de livres : 2 tables : « Titres » et « Prêts » un formulaire qui contient un zone de liste déroulante (4 colonnes) pour afficher 1) le titre 2) auteur 3) genre 4 )biblio par l’intermédiaire de Column(2) Column(3) et Column(4)
Tout s’affiche dans ma ligne de formulaire, mais, dans la table Prêts je ne retrouve que le titre ?? que faire dans ce cas ?? Merci
A priori c’est normal, et c’est même plutôt bon signe : dans une base de données, tu sépares les informations dans différentes tables de façon à éviter les doublons. Il n’y a pas d’intérêt à copier le titre dans la table des prêts (ça ferait doublon justement).
Par contre, si tu as besoin ultérieurement des infos Prêts et Livres, tu peux faire une requête qui reprend les 2 tables et te servir de cette requête comme base de travail.
danbo > Normalement, la fonction
ShellExec()
fournie sur le site devrait faire l’affaire. Elle ne va pas nécessairement démarrer le MediaPlayer, mais plutôt le logiciel affecté par défaut à la gestion des vidéos (ce qui est mieux, puisqu’on s’adapte à la configuration de l’utilisateur).Par exemple, cette ligne démarre MediaPlayer (mon lecteur par défaut, sur ma machine, et joue la vidéo automatiquement :
Site sympa, merci !
J’y viens souvent.
A propos d’Access, développant une petite base pour une entrerpise manufacturière, je souhaite lancer des minis videos techniques à partir d’ACCESS.
Or, avec le ShellExecute, comment informer ACCESS de lancer l’exe de Media Player, par exemple, tout en lui indiquent le nom de la video ?
La technique n’est pas courante à priori, et de plus, l’import OLE m’est impossible et refusé quoique je fasse.
Espérant être au bon endroit (dossier formulaire ACCESS)
Merci.
Danbo
yann > J’imagine que l’erreur se produit sur le
CancelEvent
?Hello,
Lorsque j’appuie sur le bouton suivant correspondant au code cidessous,
Private Sub Commande121_Click()
If MsgBox(« Souhaitez-vous sauvegarder? », vbQuestion + vbYesNo + vbDefaultButton2, « Sauvegarde ») = vbYes Then
DoCmd.RunCommand acCmdSaveRecord
DoCmd.RunMacro « Clients »
Else
DoCmd.CancelEvent
End If
End Sub
j’ai le message d’erreur suivant :
La commande ou l’action sauvegarde maintenant n’est pas disponible pour le moment.
Pouvez vous m’aider?
Merci de votre aide
Seref >
Bonjour,
comment se fait-il que sur un formulaire le bouton dupliquer un enregistrement ne fonctionne plus ?
En effet, lorsque je clique dessus il ouvre un nouvel enregistrement alors que jusque là il dupliquait ?
Merci de votre aide.
Jean De Dieu > Quelque chose comme
Me.Dirty = False
devrait suffire (je n’ai pas d’Access sous la main, aujourd’hui, pour vérifier).Salut , j’aimerais savoir comment ecrire un code VBA pour annuler un enregistrement .
MERCI
chrisu > Pas de problème, c’est fait pour ça !
Après des tas de tâtonnements et grâce au site j’ai enfin compris mon erreur. Le chemin est encore long pour moi.. et je jongle entre français et anglais.
Merci pour votre aide.
J’ai utilisé cette commande mais je reçois un message d’erreur:
Microsoft Office Access can’t find the object ‘DoCmd’
chrisu > Est-ce que l’instruction est tapée au bon endroit ? Notamment : elle ne doit pas être tapée dans la fenêtre de propriétés, mais dans le code qui est « derrière ».
Je m’explique :
Sur clic
« , choisir «Procédure événementielle
« .Là, on obtient un bloc de cette forme :
C’est entre ces 2 lignes qu’il faut taper le code VBA.