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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
| Option Compare Database
Option Explicit
Dim Etage, Zone, Priz, calcul, AB
Private Sub Form_Current()
'on indique que tout ce qui ne concerne pas l'etage doit être grisé
Me.NumPrise.Enabled = False
Me.GpeZone.Enabled = False
Me.Doublage.Enabled = False
End Sub
Private Sub GpeEtage_AfterUpdate()
'Lors de la selection de l'etage, le Groupe d'option "Zone" s'active
Me.GpeZone.Enabled = True
'La variable Etage prend la valeur selectionnée
Etage = Me.GpeEtage.Value
MsgBox Etage
End Sub
Private Sub GpeZone_AfterUpdate()
'Lors de la selection de la zone, la zone de texte "Numéro de prise" s'active
Me.NumPrise.Enabled = True
'Me.Bascule14.Enabled = (Me.GpeZone.Value = Me.Bascule9.Value)
'Me.Bascule15.Enabled = Me.Bascule14.Enabled
'=> expression sans paramètre
'If Me.GpeZone.Value = Me.Bascule9.Enabled = True Then => les autres etages restent grisés
'If Me.GpeZone.Value = Me.Bascule9.Caption Then => les zones 2 et 3 s'activent lors du choix de la zone du 7e
'If Me.Bascule9.Enabled = True Then => paramètre non valide
'If Me.Bascule9.Caption Then => Incompatibilité de type
'Me.Bascule14.Enabled = False
'Me.Bascule15.Enabled = False
'Else
'Me.Bascule14.Enabled = True
'Me.Bascule15.Enabled = True
'End If
'If Bascule9.Value Then
' Bascule13.Enabled = True
' Bascule14.Enabled = False
' Bascule15.Enabled = False
'Else
'Bascule13.Enabled = True
' Bascule14.Enabled = True
' Bascule15.Enabled = True
'End If
'If Bascule9.OnGotFocus Then
'Me.Bascule14.Enabled = False
'Me.Bascule15.Enabled = False
'Else
'Me.Bascule14.Enabled = True
'Me.Bascule15.Enabled = True
'End If
'=> incompatibilité de type
'Me.Bascule14.Enabled = (Me.GpeZone.Value <> 7)
'Me.Bascule15.Enabled = Me.Bascule14.Enabled
'=> Les zones 2 et 3 s'activent dès qu'on selectionne la zone 1)
'La variable Zone prend la valeur selectionnée
Zone = Me.GpeZone.Value
MsgBox Zone
End Sub
Private Sub Bascule9_GotFocus()
Me.Bascule14.Enabled = False
Me.Bascule15.Enabled = False
End Sub
Private Sub Doublage_AfterUpdate()
'La variable AB prend la valeur souhaitée
AB = Me.Doublage.Value
MsgBox AB
End Sub
Private Sub NumPrise_Exit(Cancel As Integer)
Priz = Me.NumPrise.Value
MsgBox Priz
Select Case NumPrise
'Si la valeur entrée est inférieure à 1, cela génère une erreur
Case Is < 1
MsgBox "La valeur est trop petite"
Me.Resultat.SetFocus
Me.NumPrise.SetFocus
'meme erreur si la valeur saisie est supérieure à 99
Case Is > 99
MsgBox "La valeur est trop grande"
Me.Resultat.SetFocus
Me.NumPrise.SetFocus
Case Else
Exit Sub
End Select
End Sub
Private Sub NumPrise_AfterUpdate()
'Lors de la selection du numéro de prise, le Groupe d'option "AB" s'active
Me.Doublage.Enabled = True
End Sub
Private Sub Valider_Click()
'On concaténène les résultats obtenus précédemment pour obtenir notre numéro de prise et on veut que le doublage prenne une valeur alphabétique (A ou B)
calcul = Etage & Zone & Priz & Choose(AB, "A", "B") 'GpeEtage.Value & GpeZone.Value & NumPrise.Value & Choose(Doublage.Value, "A", "B")
Resultat.Value = calcul
MsgBox calcul
End Sub
Private Sub BC_SORTIE_Click()
On Error GoTo Err_BC_SORTIE_Click
DoCmd.Close
Exit_BC_SORTIE_Click:
Exit Sub
Err_BC_SORTIE_Click:
MsgBox Err.Description
Resume Exit_BC_SORTIE_Click
End Sub |
Partager