Bonjour,
je souhaite copier plusieurs enregistrements (et quand je dis plusieurs c'est variable, entre 1 et 20 grosso modo, mais ce n'est pas fixé) d'un formulaire1 vers un formulaire2 que l'on ouvre par un bouton sur le 1.
Pour ça, j'ai créé cette commande:
Qui fonctionne très bien (les instructions "setwarnings" c'est parce que je ne copie pas tout mon premier formulaire et que les noms de champs changent entre les deux, ça évite les messages d'erreur sur le sujet).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Private Sub Commande67_Click() DoCmd.RunCommand acCmdSelectAllRecords DoCmd.RunCommand acCmdCopy DoCmd.OpenForm "formulaire2", acNormal, "", "", acAdd, acNormal DoCmd.SetWarnings False DoCmd.RunCommand acCmdSelectAllRecords DoCmd.RunCommand acCmdPaste DoCmd.Close acForm, "formulaire1" DoCmd.SetWarnings True End Sub
Cependant, l'ouverture du formulaire2 est conditionné par un mot de passe. Donc forcément, quand on n'a pas le mot de passe et que l'on ferme le formulaire de mot de passe qui s'ouvre à l'ouverture du formulaire2, j'ai un message d'erreurdu type "l"action OpenForm a été annulée", ce qui fait planter ma base de donnée.
Donc j'ai essayé de faire coller les données à l'ouverture du formulaire2 plutôt qu'à la fermeture du formulaire1, mais ça me met que "la commande ou l'action "coller" n'est pas disponible pour le moment". Le code utilisé pour ce faire est le suivant:
sur le formulaire1
sur le formulaire 2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub Commande67_Click() DoCmd.RunCommand acCmdSelectAllRecords DoCmd.RunCommand acCmdCopy DoCmd.OpenForm "formulaire1, acNormal, "", "", acAdd, acNormal End Sub
(j'ai viré entre les deux le formulaire de mot de passe pour simplifier dans un premier temps mon truc).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub Form_Open(Cancel As Integer) DoCmd.SetWarnings False DoCmd.RunCommand acCmdPaste DoCmd.SetWarnings True End Sub
En bref, il semble qu'il faille utiliser "acCmdcopy" et "acCmdpaste" dans le même formualire sinon Access ne trouve pas les données "copiées". Comment faire pour stocker plusieurs enregistrements copiés pour les utiliser dans un autre formulaire ?
Je vous remercie!
Partager