Bonjour à tous,
J'ai conçu un formulaire me permettant de passer une commande de produits chez un fournisseur. Sur ce formulaire, j'ai un sous-formulaire, ou je reprends les détails de la commande (c'est donc sur celui-ci que je choisi les produits qui vont faire partie de ma commande).
Afin de "sécuriser" au maximum l'application de manoeuvres malencontreuses, j'ai rajouté un bouton "Editer" sur le formulaire principal, qui me permet d'éditer le formulaire en question pour modification. Pour ce faire, j'ai rajouté le code VB suivant :
Private Sub cmdEdit_Click()
Me.AllowEdits = True
End Sub
Private Sub Form_Current()
Me.AllowEdits = False
End Sub
Cela marche très bien pour le formulaire principal, mais ça ne marche pas pour le sous formulaire (il est tout le temps éditable). J'ai essayé de rajouter la commande VB suivante à mon code déjà existant (voir en rouge), mais ça ne marche pas.
Private Sub cmdEdit_Click()
Me.AllowEdits = True
Forms(NomDeMonSouFormulaire).AllowEdits=True
End Sub
Private Sub Form_Current()
Me.AllowEdits = False
Forms(NomDeMonSouFormulaire).AllowEdits=False
End Sub
Qqn aurait une idée sur la façon de procéder ?
Enfin, deuxième question, mon sous formulaire (tjs le même) affiche les détails d'une commande. Pour ce faire, il référence la clé primaire de ma table commande. L'identifiant de cette table est un NuméroAuto.
Là où j'ai un petit soucis, c'est que lorsque je vais directement dans mon sous formulaire pour remplir les articles à commande, sans tout d'abord remplir un champ de mon formulaire de base (celui qui contient les infos globales sur la commande), Acces me fait une erreur, étant donné que la valeur de NumeroAuto n'a pas encore été assignée. J'ai remarqué que celle-ci était initialisée dès que j'entrais une donnée dans un des champs de mon formulaire de base. Y a-t-il un moyen d'améliorer cette façon de procéder ?
Merci pour vos réponses
Benoît
Partager