Većina komercijalnih Windows programa (MS Money, Quicken, MS Office…) omogućavaju korisnicima da pritiskom na plus (+) ili minus (–), povećavaju datume u datumskim poljima, gore i dole, za po jedan dan. Na ovaj način se prevazilazi problem ponovnog unošenja datuma u isto polje, tj. smanjuje se potrebno vreme za unošenje podataka u obrazac. Ovo može da bude jako značajno kod računovodstvenih i sl. aplikacija, zbog unosa velikog broja podataka. Da kažemo još da se sledeća procedura može primeniti i na brojčana polja.
U Access-u (ili drugoj Office aplikaciji), dodajte sledeću proceduru događaju KeyPress, one kontrole gde se nalazi datum:
Private Sub txtDatum_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 43 ‘ Plus znak
KeyAscii = 0
Screen.ActiveControl = Screen.ActiveControl + 1
Case 45 ‘ Minus znak
KeyAscii = 0
Screen.ActiveControl = Screen.ActiveControl – 1
End Select
End Sub
Šta se dešava? Kada je pritisnut alfanumerički taster na tastaturi, Access prosleđuje ASCII vrednost obrađivaču događaja, putem varijable KeyAscii. Programski kod ispituje prosleđenu vrednost (Select), i reaguje samo ako su pritisnuti tasteri plus (ASCII kod = 43) ili minus (ASCII kod = 45). Potom se poništava pritisak na tastere (KeyAscii = 0), da ne bi došlo do unosa znaka plus ili minus u datumsko polje (njihovog upisa). I na kraju se vrednost aktivne kontrole povećava ili smanjuje za jedan. Kao što smo rekli ideja nije ograničena datumska polja, a proceduru možete iskombinovati sa događajem KeyDown, radi recimo razdvajanja pritiska na testere u gornjem delu tastature ili na numeričkom delu (upis ili povećavanje).
Pratite Krstaricu na www.krstarica.com