konstantin
Član broj: 17262 Poruke: 132 *.com
|
Najzgodniji nacin za azuriranje polja statusa(yes/no) bio mi je dvoklik na to polje u formi. Posto mi je ControlSource polja status=IIf([status]=True;"DA";"NE"), morao sam malo kodirati da bi korisnici neprekidno u polju vidjeli DA i NE umjesto Yes i No.
Ova procedurica to i odradi, ali sam mislio da ce refresh forme i requery kontrole biti dovoljno da se vidi pravi sadrzaj nakon azuriranja. Medjutim dobijem #Name? a da ne znam zbog cega i onda sam prinudjen da zatvorim pa otvorim formu da bih vidio rezultat.
Ima li neko ideju da se izbjegne otv. i zatv. forme?
txtZbog_duga je kontrola na polje status:
Private Sub txtZbog_duga_DblClick(Cancel As Integer)
Dim odg As Integer
odg = MsgBox("Zelite li promijeniti status " & Me.ID & " na datum " &_Me.datum "?", vbYesNo, "Provjera")
If odg = vbNo Then
Exit Sub
Else
Me.txtZbog_duga.ControlSource = "status"
If Me.txtZbog_duga = True Then
Me.txtZbog_duga = False
Else
Me.txtZbog_duga = True
End If
End If
Me.txtZbog_duga.ControlSource = "IIf([status]=True;'DA';'NE')"
Me.txtZbog_duga.Requery
Me.Refresh
End Sub
|
|
| |
|
Zidar Canada
Moderator Član broj: 15387 Poruke: 3085 *.eqao.com
|
Koliko razumem, ti imas polje tipa Yes/No, nazvano "Status". Na formi imas text box txtZbogDuga, koji prevodi Yes/No u Da/Ne. Znaci da je txtZbogDuga "calculated field" i kao takvo, to polje ne moze da se edituje ("non updateable field"). Znaci, njega neces da diras, neces da mu menjas Source. Control source for txtZbogDuga treba da bude
= IIf([status]=True;'DA';'NE')
i to postavis u design modu i NE DIRAS VISE.
Da bi postigao sta zelis, treba da na formi imas polje Status, koje ima data source Status. Polje Status mozes da ucinis nevidljivim ako hoces, ali ga moras imati formi.
Double click ce da promeni vrednost polja Status, a txtZbogDuga ce da prikaze i prevede vrednost Staus u Da/Ne.
Tvoja procedure txtZbog_duga_DblClick treba da uradi sledece:
Private Sub txtZbog_duga_DblClick(Cancel As Integer)
odg = MsgBox("Zelite li promijeniti status " & Me!ID & " na datum " &_Me!datum "?", vbYesNo, "Provjera")
If odg = vbNo Then
Exit Sub
Else
me!Status= NOT me!Status ' NOT ispred Yes/No polja menja istinitost
me.recalc ' verovatno moze i bez ovoga
'ili
txtZbog_duga!requery 'verovatno moze i bez ovoga
End IF
End Sub
:-)
|
|
| |
|
konstantin
Član broj: 17262 Poruke: 132 *.com
|
Zaista si me dobro podsjetio na ovu korisnu stvarcicu sa nevidljivim poljem.
Ipak ne mogu a da ne upitam zasto ne uradi refresh izmjene, kada moja procedura zaista URADI ono sto je i trebala. Stavim status u recordSource (da bih mogao da uradim update na tom polju), izmjenim status i nakon toga sa funkcijom IIf "prevedem"(odnosno vratim RecordSource) u DA i NE?
U svakom slucaju hvala na info!
|
|
| |
|
Zidar Canada
Moderator Član broj: 15387 Poruke: 3085 *.eqao.com
|
Ako nemas polje Status na formi, Access ne zna da prevede formulu Me.txtZbog_duga.ControlSource = "IIf([status]=True;'DA';'NE')"
Naidje na [Status] i ne zna sta je to, pa ti javi gresku "Name?"
:-)
|
|
| |
|
konstantin
Član broj: 17262 Poruke: 132 *.com
|
A prije je vec azurirao vrijednost polja status dok mu je RecordSource bio status.
OK!
|
|
| |
|