Mjenjanje maske na text box-u ovisnosti o check box-u

  • 8 odgovora
  • 4.541 pregleda
Mjenjanje maske na text box-u ovisnosti o check box-u 27.01.2010. u 13:17 · pre 203 meseci #1
Pitanje ne bi trebalo biti komplicirano.

Na formi imam text box sa sljedećom maskom koja dozvoljava unos maksimalno 8 znamenki

Input mask: 99999999;0;_

E sad, dodao bih još jedan check box na formu. Kada je true (kvačica), onda bi trebalo dozvoliti unos 13 znamenki.
Kako ovo najelegantnije riješiti?
Re: Mjenjanje maske na text box-u ovisnosti o check box-u 28.01.2010. u 13:20 · pre 203 meseci #2
Rješio sam problem... ima više rješenja. evo rješenja ako nekome ikad zatreba. Najjednostavnije je da na before update checkbox-a stavimo kod

Code:

Private Sub Check121_BeforeUpdate(Cancel As Integer)
If Check121.Value = True Then [Maticni broj].InputMask = "9999999999999;0;_"
If Check121.Value = False Then [Maticni broj].InputMask = "99999999;0;_"
End Sub



nisam znao da li može kroz kod mjenjati input mask, a eto može se.
Re: Mjenjanje maske na text box-u ovisnosti o check box-u 28.01.2010. u 14:06 · pre 203 meseci #3
Mogao si to da rešiš i bez tog CheckBoxa, npr. pomoću duplog klika mišem u to polje (ovako, nekako)

Code:
Private Sub Maticni_broj_DblClick(Cancel As Integer)
    If Me.Maticni_broj.InputMask = "99999999;0;_" Then Me.Maticni_broj.InputMask = "9999999999999;0;_"
Else
    Me.Maticni_broj.InputMask = "99999999;0;_"
End If

End Sub
Potpis
The 11th Hour: The forces blocking change
Re: Mjenjanje maske na text box-u ovisnosti o check box-u 29.01.2010. u 08:54 · pre 203 meseci #4
Hvala za odgovor, može i tako, slažem se.

No problem je u korisnicima koji žele vidjeti razliku kada unose maticni broj za moju državu (8 znakova) ili inozemni maticni broj (13 znakova) pa sam zato morao staviti check box da vide i budu sigurni za koga i šta unoste.
Re: Mjenjanje maske na text box-u ovisnosti o check box-u 29.01.2010. u 10:52 · pre 203 meseci #6
^ Elegantnije rešenje je onda Toggle button i promena labela za polje unosa, kao i natpisa na dugmetu

Code:
Private Sub TglMATICNI_Click()
If Me.Maticni_broj.InputMask = "99999999;0;_" Then 
Me.Maticni_broj.InputMask = "9999999999999;0;_"
Me.lblMATICNI.Caption = "Matični 13-cif:"
Me.TglMATICNI.Caption = "8-cif"
Else
Me.Maticni_broj.InputMask = "99999999;0;_"
Me.lblMATICNI.Caption = "Matični 8-cif:"
Me.TglMATICNI.Caption = "13-cif"
End If

End Sub


Ili prethodno ponuđeno dupli klik rešenje uz promenu labele za to polje (da korisnici mogu da vide koja maska je aktivna)

Code:

Private Sub Maticni_broj_DblClick(Cancel As Integer)
      If Me.Maticni_broj.InputMask = "99999999;0;_" Then
      Me.Maticni_broj.InputMask = "9999999999999;0;_"
      Me.lblMATICNI.Caption = "Matični 13-cif:"
Else
    Me.Maticni_broj.InputMask = "99999999;0;_"
    Me.lblMATICNI.Caption = "Matični 8-cif:"
End If

End Sub
Potpis
The 11th Hour: The forces blocking change
Re: Mjenjanje maske na text box-u ovisnosti o check box-u 29.01.2010. u 11:31 · pre 203 meseci #7
E to je drugo rješenje do kojega sam došao. Stavio sam 2 text box-a i jedan check box. Pomoću funkcije za skrivanje koju sam pronašao tu na forumu (par tema prije ove - preko TAG-ova) kada je check box = true onda se vidi jedno polje, a kada je false onda se vidi drugo polje s različitom maskom. Ali ovako je mislim puno bolje, jer imam samo jedan text box, a sve funkcionira kako treba i puno je manje posla.
Re: Mjenjanje maske na text box-u ovisnosti o check box-u 09.05.2012. u 11:50 · pre 176 meseci #8
Pokušavam nešto slično ovome opisanom ali mi baš neide imam 1 checkbox i 2 text box, hoću da mi je osnovna postavka checkboxa bez kvačice i da su mi textbox ovi neaktivni neaktivan tj. da u njih nije moguće pisati


To bi otp bilo ovako



If Check52 = True Then
Text50.Enabled = True
Else
Text50.Enabled = False
End If
End Sub

to postavljam u pod before update text50 kao kod,ali ne radi (radim u accessu 2010)
Re: Mjenjanje maske na text box-u ovisnosti o check box-u 09.05.2012. u 13:26 · pre 176 meseci #9
Nema nikave svrhe stavljati ovaj kod na Befor Update za Text50 jer kako si vec naglasila ono ti je neaktivno za pisanje, tako da se nikako ne bi mogao pokrenuti ovaj kod.
Mozes odraditi ovako, ako sam te dobro razumeo, ti hoces da cekiranjem na Check Box aktiviras TextBox za upisivanje.
Posto Check Box vraca vrednost True ili False mozes napisati sledeci kod u After Update za Check Box

Code:
Me.Text50.Enabled = Me.Check52


A u propertisu za Text50 za Enable podesis False, a za Check52 za DefaultValue stavis False
Potpis
[email protected]=
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme