TKSoft-Online

Listview Demo PDF Drucken E-Mail
( 0 Votes )
MS-Access Bsp. DB's - Bsp. Downloads Formulare
  
Montag, den 16. Februar 2009 um 07:00 Uhr

Problemstellung:

Das Listenfeld in MS-Access ist ja schon eine prima Sache.
Es hat aber ein fehlende Funktionalitäten.
Leider ist es nicht möglich Zeilen einfärben oder einzelne Einträge in Fett darzustellen.
Dies ist aber mit dem Listview-Control möglich.
Das Control ist etwas komplizierte zu bedienen aber wenn man mal dahinter gestiegen ist
geht das Problemlos.

Voraussetzungen:

Das Bsp ist unter A00-A03 lauffähig, unter A07 nicht getestet.
MSCOMCTL.OCX muss im System32 Verzeichnis vorhanden sein.

Funktionsweise:

Auf die Grundeinstellungen des Listviews gehe jetzt nicht weiter ein.
Diese Einstellungen kann sich jeder in der Bsp-DB ansehen.
Beim Start der DB wird das Listview erstmal ganz normal mit Daten gefüllt.

 Private Sub Fill_ListView()
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim objListView As ListView
    Dim objListItem As ListItem
    Set db = CurrentDb
    Set rst = db.OpenRecordset("tbl_Produkte", dbOpenSnapshot)
    Set objListView = Me!ListView1.Object
    Me.ListView1.ListItems.Clear
    Me.ListView1.Refresh
    Do While Not rst.EOF
        Set objListItem = objListView.ListItems.Add(, "a" & rst!P_ID, rst!Produkt)
        With objListItem
            .ListSubItems.Add , , rst!Produkt
            .ListSubItems.Add , , Format(rst!Preis, "Currency")
        End With
        rst.MoveNext
    Loop
    rst.Close
    Set rst = Nothing
    Set db = Nothing
End Sub

Eine Besonderheit ist zubeachten.
Das Listview benötigt eine Indexspalte.
Jetzt könnte man sagen, na ist doch toll, ich habe ja ein Autowertfeld in meiner Tabelle.
Falsch gedacht, das Indexfeld darf nicht mit Zahlen beginnen.
Deshalb diese Zeile:

 Set objListItem = objListView.ListItems.Add(, "a" & rst!P_ID, rst!Produkt)  

Hier wird dem Autowert ein "a" vorangesetzt.
Jetzt sieht das Listenfeld auch nicht viel anders aus wie ein Listenfeld.
 
 
Nun ist es an der Zeit etwas Farbe ins Spiel zubringen.
Damit das Demo etwas variabler ist habe ich mal einen Farbauswahldialog integriert in dem die Farben
frei definiert werden können.
 
 
Mittels der Optionsfelder können nun verschiedene Möglichkeiten aufgerufen werden.
Wobei die Kriterien hier im Bsp. fest sind, aber es ist auch nur ein Demo.
1. Einfärben der Spalte "Produkt"
 

2. Einfärben der Spalte "Preis"
 

3. Einfärben der Spalte "Produkt" und Darstellung Fett bei Preis >50
 
 
4. Einfärben der Spalte "Preis" und Darstellung Fett bei Preis >50
 
 
 Zum Füllen des Listviews sieht dann der Code so aus:

 Private Sub Fill_ListViewParam(nColumn As Long, Optional nColor1 As Long = 0, _
                               Optional nColor2 As Long = 0, Optional nColor3 As Long = 0, _
                               Optional bBold As Boolean = False)
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim objListView As ListView
    Dim objListItem As ListItem
    Dim curPrice As Currency
    Set db = CurrentDb
    Set rst = db.OpenRecordset("tbl_Produkte", dbOpenSnapshot)
    Set objListView = Me!ListView1.Object
    Me.ListView1.ListItems.Clear
    Me.ListView1.Refresh
    Do While Not rst.EOF
        Set objListItem = objListView.ListItems.Add(, "a" & rst!P_ID, rst!Produkt)
        With objListItem
            .ListSubItems.Add , , rst!Produkt
            .ListSubItems.Add , , Format(rst!Preis, "Currency")
            curPrice = rst!Preis
            If curPrice >= 0 And curPrice <= 20 Then
                .ListSubItems(nColumn).ForeColor = nColor1
            ElseIf curPrice > 20 And curPrice <= 50 Then
                .ListSubItems(nColumn).ForeColor = nColor2
            Else
                .ListSubItems(nColumn).ForeColor = nColor3
                .ListSubItems(nColumn).Bold = bBold
            End If
        End With
        rst.MoveNext
    Loop
    rst.Close
    Set rst = Nothing
    Set db = Nothing
End Sub

 

Listview Demo

Demo zur Benutzung des Listviews
für A00-A03, unter A07 und Vista nicht getestet.

Die Zip-Datei enthält ein Version ab A00



Erstellt am
Dateigröße
Downloads
16.02.2009
26.7 KB
506


Downloads in dieser Kategorie

MS-Access Formulare

MS-Access Formulare

 Seite: 1

 Seite: 2


DatumKlicks
Total2775
Do. 243
Mi. 238
Di. 222
Mo. 211
So. 205
Sa. 192
Do. 173
Aktualisiert ( Mittwoch, den 19. Oktober 2011 um 12:43 Uhr )
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Login

Latest Comments

Latest Forum Posts

Mehr »

Download Statistik

41 Kategorien
187 Dateien
173483 Downloads