1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| Private Sub Commande78_Click()
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
Dim Ctrl_f As String ' Variable recevant la composante des champs W et Z
Dim Ctrl_n As String ' Variable recevant le "num production" correspondant à W
Dim Ctrl_a As String ' Variable recevant l'année en fonction de Z et contenu de la table
Dim Ctrl_t As String ' Variable recevant le composé de Ctrl_n & Ctrl_a
Z = InputBox("Saisir l'année ci-dessous", "Démo", Year(Date)) ' Interaction avec l'utilisateur (utile pour
' situation de fin d'année)
' Ici on contrôle si l'année est millésimée (inscrite dans la table "Années") et si non, on arrête tout
If IsNull(DLookup("[Num année]", "Années", "[Num année] = " & Z)) Then
MsgBox "Cette années n'est pas millésimée"
Exit Sub
End If
W = Me.NUM_PRODUCTION.Value ' Représente le numéro de production qui va venir se mettre par défaut'
' ****************** Section à supprimer s'il ne faut pas créer une année par N° de production
Ctrl_f = W & Z ' Ici, on compose un "string" avec "Me.NUM_PRODUCTION.Value" & le "Z" de l'InputBox
Ctrl_n = IIf(Not IsNull(DLookup("annee", "stock premier aout", "[num production] =" & W)), W, "_")
Ctrl_a = IIf(Not IsNull(DLookup("[num production]", "stock premier aout", "annee =" & Z)), Z, "_")
Ctrl_t = Ctrl_n & Ctrl_a ' Ici, on compose un autre "string" avec les données de la table ("[num production]" & "annee")
' Dès lors, il suffit de comparer les deux "strings" créé pour savoir s'il faut ou pas créer les 12 mois pour le N° de production
If Ctrl_f = Ctrl_t Then GoTo Ouverture ' Si l'année est déjà créée, on ouvre directement le formulaire
' ****************** Fin de la section à éventuellement supprimer
' >>>>>>>>>>>>>>>>>>>> Début de section à réactiver (supprimer les apostrophes)
'If Not IsNull(DLookup("[num production]", "stock premier aout", "annee = " & Z)) Then GoTo Ouverture
' >>>>>>>>>>>>>>>>>>>> Fin de la sectin à réactiver
For I = 1 To 12 ' I prend les 12 valeurs des 12 mois
Debug.Print I & ", " & Z & "," & W
sql = "INSERT INTO [stock premier aout] ( mois, annee, [num production] ) VALUES ( " & I & ", " & Z & "," & W & ")"
DoCmd.RunSQL sql
Next I
Ouverture:
DoCmd.OpenForm "PRODUCTION1", acNormal
End Sub |
Partager