Bonjour, j'ai un code VBA (grâce à l'aide précieuse de Bernard Michel) que j'ai légèrement modifié.
Sa fonction:
J'ai un formulaire avec un sous-formulaire en mode feuille de données qui a 4 colonnes: numéro production, année, mois, stock physique
Le code VBA va (sur ouverture du formulaire) pour chaque numéro de production, me mettre dans mon formulaire et dans ma table pour une année demandée tous les mois de l'année.
Ainsi, l'utilisateur a un formulaire qui s'affiche:
1ère colonne le numéro de production (répété donc 12 fois), 2ème colonne l'année 2008 répétée 12 fois, 3ème colonne les 12 mois de l'année et 4ème colonne des 0 correspondants au stock physique que l'utilisateur pourra modifier
Voici mon code:
Bien qu'il fonctionne bien, j'ai maintenant deux problèmes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Private Sub Form_Open(Cancel As Integer) Dim I As Integer ' Représente les 12 mois, voir ci-dessous For-To-Next Dim Z As Integer ' Représente l'année (voir ci-dessous divers possibilités) Dim W As Integer Dim sql As String ' Variable dans laquelle on inscrit un code SQL variable selon I & Z ' Z = Year(Date) ' Première possibilité où Z prend la valeur de l'année en cours Z = InputBox("Saisir l'année ci-dessous", "Démo", Year(Date)) ' Interaction avec l'utilisateur (utile pour ' situation de fin d'année) W = Me.NUM_PRODUCTION.Value ' Représente le numéro de production qui va venir se mettre par défaut' For I = 1 To 12 ' I prend les 12 valeurs des 12 mois sql = "INSERT INTO [stock premier aout] ( mois, année, [num production] ) VALUES ( " & I & ", " & Z & "," & W & ")" DoCmd.RunSQL sql Next I End Sub
-si l'année 2008 a été ajoutée (j'entends par là les 12 mois avec les 0 correspondants en stock physique), comment faire pour que si je réouvre mon formulaire, je n'ai pas à nouveau mes 12 lignes qui se recréées?
-lorsque j'ouvre mon formulaire, 12 lignes s'ajoutent. Access me met donc 12 fois le message "vous aller ajouter un enregistrement...."
Comment faire pour éviter ce message?
Merci pour votre aide;
élodie
Partager