Prikaz števila na gumbu
Pokažite, koliko elementov čaka za Accessovim gumbom – „3“ odprte seje na gumbu Seje, rdečo piko na Obvestila –, tako kot Outlook in Teams označujeta neprebrane elemente, ne da bi spremenili gumb in brez dodatnega cilja za klik.
Zahteva WKL Forms Object Library 1.35 ali novejšo različico.
Pregled rešitve
WklBadgeje majhen kontrolnik ActiveX. Postavite ga ob gumb,Targetnastavite na ime gumba inCornerna vogal; v pogledu obrazca se značka postavi na ta vogal in sledi gumbu, ko ga koda premakne, mu spremeni velikost ali ga skrije.- Vrednost:
Countnastavite s kodo ali značko z virom kontrolnika vežite na polje ali na izraz, kot je=DCount(...). Nič, Null in prazna vrednost značko skrijejo; nadMaxprikaže „99+“.Dotprikaže oznako brez števila. - Kliki in tipkovnica: klik na značko doseže gumb pod njo; značka ni tabulatorsko mesto. Bralniki zaslona slišijo „Seje: 3“ s polnim številom.
Izvedba
Tabela iz primera, ustvarjena enkrat (proceduro zaženite iz okna Immediate):
Public Sub CreateBadgeSample()
With CurrentDb
.Execute "CREATE TABLE tblSeje (ID LONG CONSTRAINT PK_Seje PRIMARY KEY, StrankaID LONG, Odprta YESNO)"
.Execute "INSERT INTO tblSeje VALUES (1, 1, True)"
.Execute "INSERT INTO tblSeje VALUES (2, 1, True)"
.Execute "INSERT INTO tblSeje VALUES (3, 2, False)"
End With
End Sub
Obrazec frmStart z gumbom cmdSeje in značko badSeje, narisano blizu zgornjega
desnega vogala gumba. Lastnosti značke se nastavijo enkrat na listu z lastnostmi (zavihek Drugo)
ali s kodo v pogledu načrta; tukaj zaradi preglednosti s kodo v Form_Load:
Option Compare Database
Option Explicit
Private Sub Form_Load()
With Me!badSeje.Object
.Target = "cmdSeje"
.Corner = wbcTopRight
.AccessibleText = "Odprte seje"
End With
PosodobiStevec
End Sub
Private Sub Form_Timer()
PosodobiStevec ' TimerInterval = 30000: every 30 seconds
End Sub
Private Sub PosodobiStevec()
Me!badSeje.Object.Count = DCount("*", "tblSeje", "Odprta = True")
End Sub
Z vezavo namesto kode: vir kontrolnika značke nastavite na izraz; Access ga izračuna z zapisom obrazca:
' In design view, or in the property sheet: Control Source of badSeje
Me!badSeje.ControlSource = "=DCount(""*"",""tblSeje"",""Odprta = True AND StrankaID = "" & [StrankaID])"
Pika na oznaki, v barvi opozorila:
With Me!badObvestila.Object
.Target = "lblObvestila"
.Dot = True
.Kind = wskWarn
End With
Opombe
- V pogledu načrta značka ostane tam, kamor ste jo narisali; na cilj se premakne šele v pogledu obrazca. Narišite jo blizu njenega mesta, da je načrt videti kot obrazec.
- Cilj mora biti kontrolnik brez lastnega okna: gumb, oznaka, slika, polje z besedilom ali kontrolnik WKL. Access podobrazce riše nad vsemi kontrolniki ActiveX; značka na podobrazcu ostane skrita, zato jo postavite ob podobrazec.
- Ne deluje v odseku s podrobnostmi neprekinjenega obrazca; v njegovi glavi ali nogi deluje. Število za vsak zapis sodi v stolpec
WklGrid. - Značka z
Clickable= True sama sprejema klike in sprožiClick; tedaj je element za upravljanje, njen TabStop pa ostane tak, kot ga je nastavil Access.
Sorodne teme
- Referenčni priročnik API (v angleščini): WklBadge – člani, vogali, pravila za vrednosti.
- Prikaz števil na vnosih za krmarjenje – ista značka na vnosih
WklNavBar.