Prikaz stanja iz polja zapisa
Stanje trenutnega zapisa – „teče“, „ustavljeno“, „napaka“ – prikažite kot barvno stanje v eni
vrstici na posamičnem obrazcu ali v glavi obrazca, z oznako stanja WklStatusLabel, vezano na
polje.
Zahteva WKL Forms Object Library 1.23 ali novejšo različico.
Pregled rešitve
- Vežite jo kot polje z besedilom: Vir kontrolnika (
ControlSource) navede polje ali izraz. Access ob vsaki menjavi zapisa vpiše vrednost trenutnega zapisa v oznako; oznaka nikoli ne zapisuje nazaj. - Vrednosti postanejo besedilo in vrsta prek vnosov (
AddStatusItem): en vnos za vsako vrednost, s prikazanim besedilom in vrsto (wskOk,wskWarn,wskBad,wskInfo,wskNeutral), ki določa barve. Vrednosti brez vnosa prikažejo vrednost, oblikovano sFormat, v vrstiKind, nastavljeni v načrtu. - Ali pa vrsto vzemite iz drugega polja (
KindField), kadar jo zapis hrani: število od 0 do 5 ali ime, kot staokalibad. - Videz izberete z
Display: kapsula (wsdPill), pika (wsdDot) ali simbol (wsdSymbol) pred besedilom;Captiondoda pred njim navadno besedilo („Storitev“).
Izvedba
Obrazec frmStoritve, vezan na tblStoritve, katerega polje Stanje vsebuje 0, 1 ali 2, z oznako
stanja stStanje. Vnosi se dodajo enkrat v pogledu načrta in shranijo z obrazcem:
' Once, in design view (for example from the Immediate window); saved with the form.
DoCmd.OpenForm "frmStoritve", acDesign
With Forms!frmStoritve!stStanje
.ControlSource = "Stanje"
With .Object
.Caption = "Storitev"
.Display = wsdPill
.ClearStatusItems
.AddStatusItem 0, "ustavljeno", wskNeutral
.AddStatusItem 1, "teče", wskOk
.AddStatusItem 2, "napaka", wskBad
.NullText = "neznano"
End With
End With
DoCmd.Close acForm, "frmStoritve", acSaveYes
Če zapis hrani vrsto v lastnem polju (Vrsta: ok, warn, bad …) in besedilo v drugem
(Sporocilo), vežite besedilo in navedite polje z vrsto:
With Forms!frmStoritve!stSporocilo
.ControlSource = "Sporocilo"
.Object.KindField = "Vrsta"
End With
Medtem ko teče dolgo dejanje, ga prikažite z utripom zasedenosti:
Me!stStanje.Object.Busy = True ' ... the action ... Me!stStanje.Object.Busy = False
Opombe
- Kje je lahko: na posamičnih obrazcih, v glavah in nogah obrazcev ter na uporabniških obrazcih (UserForm) v Excelu in Wordu. Ne v odseku s podrobnostmi neprekinjenega obrazca: Access tam ustvari en primerek, vezana oznaka pa prepreči, da bi Access obrazec odprl. Stanje za vsak zapis seznama sodi v stolpec stanja kontrolnika
WklGrid(wedStatus), ki sprejme enake vnose. - Spremembe s kodo na istem zapisu: oznaka menjavam zapisov sledi sama; kadar koda spremeni polje z vrsto, ne da bi se premaknila na drug zapis, pokličite
Refresh. - Barva nikoli sama: besedilo je vedno prikazano, visok kontrast se upošteva; bralniki zaslona slišijo napis, besedilo in vrsto.
Sorodne teme
sl/wiki/msaccess/comctl/how-to/show-a-status-from-a-field.txt · Last modified: by Wolfgang van der Stille