Bonjour
J'ai un formulaire indépendant avec affichage par défaut : formulaires continus
Dans le corps du formulaire (Détail) j'ai un champ [Code] indépendant et un champ [Intitule] indépendant.
Je souhaite que ce formulaire affiche les enregistrements (les uns sous les autres donc puisque formulaires continus) de la table [ModePaiemnt]. Le but étant de lire, pouvoir modifier les enregistrements et/ou en ajouter.
Mais je veux pouvoir contrôler la MAJ de la table c'est à dire que j'ai deux boutons l'un qui validera et donc mettra à jour la table de tous ce qui a été fait dans le formulaire et un autre qui au contraire annulera toutes interventions sur l'ensemble des enregistrements et laissera la table comme à l'ouverture du formulaire.
Pour les formulaires à enregistrement unique je sais avec VBA comment faire pour annuler. Mais ici je souhaite un formulaire continu et donc lorsque je modifie un enregistrement et que je passe à un autre cela MAJ automatiquement la table... ce que je ne veux pas. Donc après maintes recherches, l'idéale (pour moi) serait qu'à l'ouverture le code créée une copie de ma table [ModePaiemnt] et la lie à ce formulaire, comme ça toutes les interventions se font sur cette copie. Ainsi, si je valide = je supprime la table d'origine, et renomme à l'identique la copie et si j'annule = je garde la table d'origine et supprime la copie.
Bon pour ceux qui sont arrivés à suivre voici enfin la question !
mon code se trouvant dans le formulaire :
Seulement quand je veux ouvrir mon formulaire, j'ai un message d'erreur de compilation : Variable non définie , voir partie rouge gras du code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 option compare database option explicit private sub Form_open(Cancel as integer) DoCmd.CopyObject ,"ModePaiemntCopie",acTable,"ModePaiemnt" MsgBox "La table a bien été copiée" Me.RecordSource="ModePaiemntCopie" Me.Code.ControlSource=ModePaiemntCopie!Code Me.Intitule.ControlSource=ModePaiemntCopie!Intitule end sub
Merci pour votre aide .... pour ce premier point.
Partager