PDA

Vollständige Version anzeigen : ListView


tetex
07.06.2012, 00:26
Hallo,

wie lässt man einen ListView mit der Tabelle auslesen?

Private Sub Form_Load()
With ListView6.ColumnHeaders
.Add , , "ID", 800
.Add ,
End With
End Sub

Scorefun
07.06.2012, 00:54
Luftcode


dim rs as recordset
dim ix as listitem

set rs = currentdb.openrecordset("DeineAbfrage")

do while not rs.eof
'Erster Parameter muss eine eindeutige ID sein, die mit einem Buchstaben anfängt (keine Zahl !!!)
'zweiter Parameter die Anzeige im Listview
'entspricht erster Spalte
set ix = me.listview.ListItems.Add(, rs!FeldName, rs!Feldname)
'alle folgenden Spalten mit subitems ansprechen
ix.SubItems(1) = rs!NaechterFeldname '=2.Spalte
ix.SubItems(2) = rs!DritterFeldname '=3.Spalte
rs.movenext
loop

TommyK
07.06.2012, 08:03
Hallo,

ich hatte hier mal einen kleinen Workshop zum Thema gemacht:
Listview Demo (http://www.tksoft-online.de/index.php/ms-access-bsp-dbs/26/304-listview-demo.html)

tetex
07.06.2012, 08:59
Vielen Dank.
Hat mir sehr viel geholfen.

ich habs noch nicht ausprobiert, kann ich bei Doppelklick ausgewählte Feld in Formular anzeigen lassen?

mit dem Start-paramtere
DoCmd.OpenForm

//EDIT
ok habs gelöst:

Private Sub listView1_DblClick()
Dim l As Long
Dim lSel As Long

For l& = 1 To Me!ListView1.ListItems.Count
Debug.Print Me!ListView1.ListItems.Item(l&) & "|";
Debug.Print Me!ListView1.ListItems.Item(l&).SubItems(1) & "|";
If Me!ListView1.ListItems.Item(l&).Selected Then
lSel& = l&
Exit For
End If
Next l&
DoCmd.OpenForm "Tabelle2", , , _
"[ID] = " & Me!ListView1.ListItems.Item(lSel&)

End Sub

tetex
07.06.2012, 09:34
Hallo,

ich muss euch mal wieder nerven :(
Könnt ihr mir ein Tip geben, wie ich eine Bedingte Formatierung anwenden kann, wenn in der Tabelle1, Feld(Option) nom beinhaltet so dass die Spalte im Listview farbig darstellt?

MfG

maikek
07.06.2012, 12:26
Moin,
das ist doch in dem Tutorial von TommyK beschrieben, wie das geht.
An welcher Stelle genau ist denn dein Problem?
maike

tetex
07.06.2012, 13:45
hi,

ich habs so einigermaßen hinbekommen

stat = rst!info
If stat = "nom" Then

.ListSubItems(1).ForeColor = vbRed
End If

kann ich auch kompeltt einfärben wenn text entält?

MfG

tetex
07.06.2012, 22:02
Hallo,

ich weiss nicht was ich da kaputt gemacht habe
nun geht das irgendwie nicht mehr. Tabellen inhalte sind verschoben die werden nicht richtig dargestellt.

With ListView1.ColumnHeaders
.Add , , "AuftragID", 1000
.Add , , "Auftrag", 2000
.Add , , "Station", 2000
.Add , , "Datum", 5000

End With
Fill_ListView
End Sub


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("Tabelle1", 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!Auftrag)
With objListItem

.ListSubItems.Add , , rst!AuftragID
.ListSubItems.Add , , rst!Station
.ListSubItems.Add , , rst!Auftrag

stat = rst!Station
If stat = "Station 1" Then

.ListSubItems(1).Bold = True
.ListSubItems(1).ForeColor = vbRed

End If






stat1 = rst!Station
If stat1 = "Station 2" Then
.ListSubItems(1).Bold = True
.ListSubItems(1).ForeColor = vbYellow


End If

End With
rst.MoveNext
Loop

rst.Close
Set rst = Nothing
Set db = Nothing

End Sub

Was habe ich da falsch gemacht?


MfG

Scorefun
07.06.2012, 22:53
du mußt beim Befüllen schon die richtige Reihenfolge der Felder einhalten, die Du unter ColumnsHeaders-Add oben vorgegeben hast...