Barvna shema: Temna
Trenutno dejavna stran: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Prikaz števila na gumbu

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

  • WklBadge je majhen kontrolnik ActiveX. Postavite ga ob gumb, Target nastavite na ime gumba in Corner na 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: Count nastavite 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; nad Max prikaže „99+“. Dot prikaž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ži Click; tedaj je element za upravljanje, njen TabStop pa ostane tak, kot ga je nastavil Access.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/show-a-count-on-a-button.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille