[ sule99 @ 27.01.2010. 13:17 ] @
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?
[ sule99 @ 28.01.2010. 13:20 ] @
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.
[ Catch 22 @ 28.01.2010. 14:06 ] @
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
[ sule99 @ 29.01.2010. 08:54 ] @
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.
[ galac1968 @ 29.01.2010. 09:08 ] @
Predlog: da stavis dva textboxa,dva checkboxa pa da se cekira koje zelis a ono necekirano da bude nevidljivo.
[ Catch 22 @ 29.01.2010. 10:52 ] @
^ 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
[ sule99 @ 29.01.2010. 11:31 ] @
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.
[ Mina7 @ 09.05.2012. 11:50 ] @
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)
[ FOX028 @ 09.05.2012. 13:26 ] @
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