J'ai un gestionnaire d'événements KeyDonw sur mon formulaire dans MS Access 2007, je l'utilise à la place des masques, car ils ne fonctionnent pas comme je le souhaite.MS Access obtient la zone de texte de l'expéditeur sur l'événement KeyDown dans vba
Voici mon code:
Private Sub date_rogd_s_d_KeyDown(KeyCode As Integer, Shift As Integer)
If ([Forms]![aForm].Form.date_rogd_s_d.SelLength = 2) Then
[Forms]![aForm].Form.date_rogd_s_d.Text = ""
End If
If (val([Forms]![aForm].Form.date_rogd_s_d.Text) > 31) Then
Select Case KeyCode
Case vbKeyDelete, vbKeyBack, vbKeyReturn
X = Y
Exit Sub
Case Else
KeyCode = 0
Exit Sub
End Select
End If
If (Len([Forms]![aForm].Form.date_rogd_s_d.Text) < 2) Then
Select Case KeyCode
Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57
Case 96, 97, 98, 99, 100, 101, 102, 103, 104, 105
Case vbKeyDelete, vbKeyBack, vbKeyReturn
X = Y
Case Else
KeyCode = 0
End Select
Else
Select Case KeyCode
Case vbKeyDelete, vbKeyBack, vbKeyReturn
X = Y
Exit Sub
End Select
[Forms]![aForm].Form.date_rogd_s_m.SetFocus
End If
End Sub
ce code fonctionne très bien, mais j'ai plus 5 mêmes champs que j'ai besoin de basculer entre.
N'importe quel moyen d'obtenir l'expéditeur d'un événement, je veux dire l'objet textbox dans la touche enfoncée, je veux créer une fonction universelle pour toutes les zones de texte et je dot copier pour coller ce code.