Home

1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

Problemstellung:

Nur für 32Bit Office Versionen

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 ab A00 lauffähig.
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

Dateien:
zip.png Listview Demo Beliebt
(1 Stimme)
Demo zur Benutzung des Listviews
ab A00

Die Zip-Datei enthält ein Version ab A00
Datum 05.02.2018
Dateigröße 26.7 KB
Download 1.624

 

Ähnliche Artikel

You have no rights to post comments

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Nur für 32Bit Office Versionen Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool...
1.png5.png7.png8.png9.png0.png7.png
Heute425
Gestern271
Diese Woche1256
Dieser Monat7530
Total1578907

  • IP: 3.235.130.73
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

6
Online

28. März 2024

Letzte Kommentare

  • Berechnen von Zeiträumen als Abfragekriterium

    elmard 02.02.2021 21:02
    1000 Dank
    für diese Datenbankanwendung! Eine sehr gute Umsetzung mit den vielen Möglichkeiten des Datums.

    Weiterlesen...

     
  • SQL zu VBA Konverter

    Tommy Admin 03.11.2019 16:33
    RE: SQL zu VBA Konverter
    Hallo Elmard, danke für die Info. :lol:

    Weiterlesen...

     
  • SQL zu VBA Konverter

    elmard 03.11.2019 14:49
    Bei SmartTools neue Version 4.0
    Dieses Tool liegt inzwischen in der Version 4 vor und läuft nun auch von A2013 und A2016 sowie im ...

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    TommyK 27.02.2019 06:52
    Workshop
    Hallo mpegjunkie, danke für Dein Feedback. Schön das Dir Workshop weiter hilft. :D

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    mpegjunkie 26.02.2019 20:10
    Perfekter Workshop
    Hallo Tommy, perfekter Workshop, toll und umfassend erläutert. Jetzt nutze ich diese Controls auch.

    Weiterlesen...