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:

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
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).

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
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
sur le formulaire 2:
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
(j'ai viré entre les deux le formulaire de mot de passe pour simplifier dans un premier temps mon truc).

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!