[ makimm @ 21.03.2007. 09:27 ] @
Kako programski zakljucati polja na formi, a onda otkljucati samo zeljeno ? |
[ makimm @ 21.03.2007. 09:27 ] @
[ Kiro @ 21.03.2007. 11:09 ] @
Sub Form_Current()
If Me!EmployeeType = "Manager" Then Me!SalaryDetails.Enabled = True Me!PersonalInfo.Enabled = True Me!PersonalInfo.Locked = False Else Me!SalaryDetails.Enabled = False Me!PersonalInfo.Enabled = False Me!PersonalInfo.Locked = True End If End Sub Pogledati Help za Locked Property [ makimm @ 22.03.2007. 09:34 ] @
Zelja je da imamo opste resenje koje ce zakljucati sva polja na bilo kojoj formi, procedura bi morala da ima formu kao parametar. Problem je sto neko polje na formi mozda nema locked property. Kako to ispitati i u zavisnosti od toga ga zakljucati ili ne ?
[ joojant200 @ 25.01.2010. 23:13 ] @
Pitanje,
Za zakljucavanje formi koristim -Locking bound controls- makro: http://allenbrowne.com/ser-56.html Problem je sto kada u nekom polju stavim event, npr: Private Sub Vrednost2_GotFocus() Me!Vrednost2 = [cboVrednost] End Sub On zaobilazi makro i unese vrednost i pored 'zakljucane' forme? [ Trtko @ 26.01.2010. 08:44 ] @
Evo saljem ti mojku funkciju s kojoj sam farbao (neki dio koda i fali ali to za tebe nije bitno ) , a ona
a ona ti daje sve objekte sa forme pa u zavisnosti što ti treba tako si i funkciju prepraviš naravno dobijaš i imena objekta pa tako možeš i ponaseobno kontrolirati taj objekt imeobj = control.Name ---- ti daje samo ime objekta pozivaš funkciju sa CALL obojaj(me.name) Pozdrav Static Function obojaj(zaf As String) On Error GoTo gresi Dim control As control Dim trtfrm, imeobj As String If IsNull(zaf) Or zaf = "" Then Exit Function End If imef = zaf For Each control In Forms(imef).Controls If control.ControlType = acSubform Then sqlupit2 = "select * from bojaforme where default= True and imeobjekta=" & acSubform Set rek2 = dato2.OpenRecordset(sqlupit2) trtfrm = control.Name Forms(imef).Form(trtfrm).Form.DatasheetBackColor = rek2.Fields("bojapodloge").Value Forms(imef).Form(trtfrm).Form.DatasheetGridlinesColor = rek2.Fields("bojagrida").Value Forms(imef).Form(trtfrm).Form.DatasheetForeColor = rek2.Fields("bojaslova").Value End If If control.ControlType = acTextBox Then sqlupit2 = "select * from bojaforme where default= True and imeobjekta=" & acTextBox Set rek2 = dato2.OpenRecordset(sqlupit2) imeobj = control.Name Forms(imef).Controls(imeobj).BackColor = rek2.Fields("bojapodloge").Value Forms(imef).Controls(imeobj).ForeColor = rek2.Fields("bojaslova").Value Forms(imef).Controls(imeobj).BorderColor = rek2.Fields("bojagrida").Value End If If control.ControlType = acLabel Then ' sqlupit2 = "select * from bojaforme where default= True and imeobjekta=" & acLabel Set rek2 = dato2.OpenRecordset(sqlupit2) imeobj = control.Name Forms(imef).Controls(imeobj).BackColor = rek2.Fields("bojapodloge").Value Forms(imef).Controls(imeobj).ForeColor = rek2.Fields("bojaslova").Value Forms(imef).Controls(imeobj).BorderColor = rek2.Fields("bojagrida").Value End If If control.ControlType = acComboBox Then sqlupit2 = "select * from bojaforme where default= True and imeobjekta=" & acComboBox Set rek2 = dato2.OpenRecordset(sqlupit2) imeobj = control.Name Forms(imef).Controls(imeobj).BackColor = rek2.Fields("bojapodloge").Value Forms(imef).Controls(imeobj).ForeColor = rek2.Fields("bojaslova").Value Forms(imef).Controls(imeobj).BorderColor = rek2.Fields("bojagrida").Value End If If control.ControlType = acListBox Then sqlupit2 = "select * from bojaforme where default= True and imeobjekta=" & acListBox Set rek2 = dato2.OpenRecordset(sqlupit2) imeobj = control.Name Forms(imef).Controls(imeobj).BackColor = rek2.Fields("bojapodloge").Value Forms(imef).Controls(imeobj).ForeColor = rek2.Fields("bojaslova").Value Forms(imef).Controls(imeobj).BorderColor = rek2.Fields("bojagrida").Value End If If control.ControlType = acRectangle Then sqlupit2 = "select * from bojaforme where default= True and imeobjekta=" & acRectangle Set rek2 = dato2.OpenRecordset(sqlupit2) imeobj = control.Name Forms(imef).Controls(imeobj).BackColor = rek2.Fields("bojapodloge").Value Forms(imef).Controls(imeobj).BorderColor = rek2.Fields("bojagrida").Value End If If control.ControlType = acLine Then sqlupit2 = "select * from bojaforme where default= True and imeobjekta=" & acLine Set rek2 = dato2.OpenRecordset(sqlupit2) imeobj = control.Name Forms(imef).Controls(imeobj).BorderColor = rek2.Fields("bojagrida").Value End If If control.ControlType = acCommandButton Then sqlupit2 = "select * from bojaforme where default= True and imeobjekta=" & acCommandButton Set rek2 = dato2.OpenRecordset(sqlupit2) imeobj = control.Name Forms(imef).Controls(imeobj).ForeColor = rek2.Fields("bojaslova").Value End If Next Exit Function gresi: err.Clear Resume Next End Function [ Zidar @ 26.01.2010. 15:44 ] @
Svi odgovori koje si dobio su dobri. neki su manje, neki vise komplikovani. Evo jednao srednej komplikovano resenje, sa upotrebom TAG property. U primeru imas kako se na formi moze:
- zajkljucati sve kontrole - otkljucati sve kontrole - zakljucati nek kontrole, neke ne - otkljucati neke kontrole, neke ne - menjati vidljivost izabranih kontrola Resenje se svodi na to da u TAG property izabranih kontrola upises neku sifru. Na primer, ako u TAG stavim rec KLJUC, onda pozovem funkciju i kazem: za sve kontrole koje imaju u TAG rec 'KLJUC' zakljucaj ih ili otkljucaj, generalno, 'uradi nesto s njima' Kontrole mogu da imaju vise od jedne sifre u TAG property, za razlicite svrhe. U zakcenom primeru iams jedna modul i jednu formu. Modul sadrzi funkcije koje rade nesto s kontrolama, a sa forme se te funkcije pozivaju. Nevezano z akonkretniu temu, primeti da se funkcije sa dugmeta mogu pozivati na dva nacina, kroz proceduru ili kao funkcija, bez event procedure. Ako vezes dugme za funkciju, to dugme moze da se cut/paste sa forme na formu i kod putuje sa dugmetom, sto inac ne moze da se radi ako je event vezan za proceduru.... :-) [ maliradoznalac @ 26.01.2010. 21:50 ] @
Zidar, ovo tvoje resenje mi se jako dopada. Nisam ja pokrenuo temu, ali hvala za ovo :-)
[ joojant200 @ 27.01.2010. 06:33 ] @
@Zidar
Probao sam i ima isti problem, npr na 'NoTagHere' stavim event: Private Sub Text2_GotFocus() Me!Text2 = [Text0] End Sub 'Unlock all controls' U 'Tag = kljuc' ukucam "bbbb", 'Lock all controls' i kliknem na 'NoTagHere' i u njega se ubaci "bbbb" iako je zakljucan? [Ovu poruku je menjao joojant200 dana 27.01.2010. u 10:17 GMT+1] [ Zidar @ 27.01.2010. 13:29 ] @
Citat: @Zidar Probao sam i ima isti problem, npr na 'NoTagHere' stavim event: Private Sub Text2_GotFocus() Me!Text2 = [Text0] End Sub 'Unlock all controls' U 'Tag = kljuc' ukucam "bbbb", 'Lock all controls' i kliknem na 'NoTagHere' i u njega se ubaci "bbbb" iako je zakljucan? Zakljucan = LOcked se odnosi na tastaturu. Programskim kodom mozes da menjas bilo koji objekat, kako hoces i kad hoces. Prema tome, problem nije u Locked/NotLocked, nego u kodu koji imas u GotFocus eventu. Pokusaj da u GotFocus proveris da li je kontrola zakljucana. (Kontrola moze biti zakljucana na bilo koji od nacina koje si video u odgovorima) Pokusaj nesto ovako: Code: Private Sub Text2_GotFocus() if me!text2.locked = true then 'nista se ne desava, nema koda, "do nothing here" else Me!Text2 = Me![Text0] endif End Sub [ joojant200 @ 27.01.2010. 14:42 ] @
Citat: Zakljucan = LOcked se odnosi na tastaturu... Pokusaj nesto ovako: Hvala puno :) Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|