PDA

Vollständige Version anzeigen : Listenfeldanzeige ändern


NetPower
24.01.2008, 12:51
Hallo Zusammen,

habe ein Listenfeld mit mehreren Spalten.
In der Spalte "Teilnahme_JN" steht als Datengrundlage eine 1 oder 0. Diese werden mir im Listenfeld auch angezeigt.
Die Zeilen, in denen eine 1 erscheint sollte nun als "X" dargestellt werden, die 0 bleibt leer.

Dim cSQL As String
cSQL = "SELECT tbl_Institutionen.InstID, tbl_Institutionen.Firma1, tbl_Institutionen.Ort, "
cSQL = cSQL & "tbl_Institutionen.Nachname, tbl_Institutionen.Vorname, tbl_Institutionen.StatusID, tbl_Institutionen.Teilnahme_JN "
cSQL = cSQL & "FROM tbl_Institutionen "
cSQL = cSQL & "WHERE (((tbl_Institutionen.StatusID)= 1)) ORDER BY tbl_Institutionen.Firma1;"

Me!lstAuswahl.ColumnCount = "7"
Me!lstAuswahl.ColumnWidths = "0cm;6cm;3cm;3cm;0cm;0cm;0,5cm"

Me!lstAuswahl.RowSource = cSQL
Me!lstAuswahl.Requery


Gibt es dafür eine Möglichkeit oder können die Daten nur so angezeigt werden, wie sie auch aus der Datenquelle kommen?

CptChaos
24.01.2008, 12:59
Sollte mit einem IIf gehen
SELECT ... IIf([tbl_Institutionen.Teilnahme_JN] = 1,"X",[tbl_Institutionen.Teilnahme_JN])...

NetPower
24.01.2008, 13:11
An welcher Stelle in der SQL-Anweisung sollte es eingesetzt werden?

ebs17
24.01.2008, 13:40
Nun, hier: tbl_Institutionen.Teilnahme_JN (ohne ... und ohne Select - das hast Du schon).

NetPower
24.01.2008, 13:50
Das hatte ich versucht;
cSQL = cSQL & "tbl_Institutionen.Ort, tbl_Institutionen.Nachname, IIf([tbl_Institutionen.Teilnahme_JN] = 1,"X",[tbl_Institutionen.Teilnahme_JN]), "
Natürlich mit Fehlermeldung. Es wird doch bestimmt nicht so in den SQL-String eingebaut!

ebs17
24.01.2008, 13:55
Da fehlt sicher ein Name des berechneten Feldes:
IIf([tbl_Institutionen.Teilnahme_JN] = 1,"X",[tbl_Institutionen.Teilnahme_JN]) AS NeuerBezeichner

NetPower
24.01.2008, 13:57
Wieso berechntes Feld. Es soll doch nur anstelle von 1 ein X erscheinen.
WIE soll diese IIf-Anweisungen in den kompletten Code eingebaut werden und vor allem WO?
Dies ist mein Problem!:(

Arne Dieckmann
24.01.2008, 14:02
Dein Code aus Beitrag #5 ist fast okay - ersetze nur die doppelten Anführungszeichen beim X durch einfache Anführungszeichen:
cSQL = cSQL & "tbl_Institutionen.Ort, tbl_Institutionen.Nachname, IIf([tbl_Institutionen.Teilnahme_JN] = 1,'X',[tbl_Institutionen.Teilnahme_JN]), "

NetPower
24.01.2008, 14:07
Hallo Arne,

habe ich auch schon versucht, dann ertscheint zwar keine Fehlermeldung, aber die Liste bleibt leer. Deswegen hatte ich diesen Versuch gleich adacta gelegt.

Arne Dieckmann
24.01.2008, 14:11
Copy&Paste-Fehler von mir.

Statt IIf([tbl_Institutionen.Teilnahme_JN] = 1,'X',[tbl_Institutionen.Teilnahme_JN])

schreibe
IIf([tbl_Institutionen].[Teilnahme_JN] = 1,'X',[tbl_Institutionen].[Teilnahme_JN]) As Bezeichner

Achte auf die eckigen Klammern und den ALIAS (As Bezeichner). Da der SQL-Code gültig ist, kann bei leerer Liste dann nur noch das Kriterium schuld sein, oder die Einstellungen des Listenfeldes (z.B. Spaltenanzahl).

NetPower
24.01.2008, 14:24
Also irgendwas scheint noch nicht zu stimmen. Der Code schient nun im Ganzen folgendermaßen aus:

Private Sub btnFirmenliste_Click()
Unvisible
Me.signFirmenliste.Visible = True
Me.txtAnzahlDS.Visible = True

Dim cSQL As String
cSQL = "SELECT tbl_Institutionen.InstID, tbl_Institutionen.Firma1, "
cSQL = cSQL & "tbl_Institutionen.Ort, tbl_Institutionen.Nachname, IIf([tbl_Institutionen].[Teilnahme_JN] = 1,'X',[tbl_Institutionen].[Teilnahme_JN]) As Bezeichner, "
cSQL = cSQL & "FROM tbl_Institutionen "
cSQL = cSQL & "WHERE (((tbl_Institutionen.Firma1)<> null)) ORDER BY tbl_Institutionen.Firma1;"

Me!lstAuswahl.ColumnCount = "5"
Me!lstAuswahl.ColumnWidths = "0cm;6cm;3cm;4cm;0,5cm"

Me!lstAuswahl.RowSource = cSQL
Me!lstAuswahl.Requery

End Sub

Das Ergebnis ist jedoch eine leere Liste!

NetPower
24.01.2008, 14:27
Hab es gefunden, es war das Komma am Schluß der Zeile.
Das X erscheint, und wie schaffe ich es jetzt noch, dass die Null nicht mehr erscheint?

Arne Dieckmann
24.01.2008, 14:31
<> Null geht nicht.

Versuch's mit
cSQL = cSQL & "WHERE tbl_Institutionen.Firma1 Is Not Null ORDER BY tbl_Institutionen.Firma1;"

NetPower
24.01.2008, 14:36
Ich glaube Du hast mich falsch verstanden.

Im Feld "Teilnahme_JN" gibt es 1 und 0. Die 1 wird nun als X dargestellt und ist korrekt, die 0 sollte aber als "Blank", "Nichts", "Nothing" dargestellt werden. D.h. sie sollte leer bleiben ;)

Dies geht nicht?

Arne Dieckmann
24.01.2008, 14:37
Falsch verstanden, aber trotzdem einen anderen Fehler korrigiert. ;)

Das geht dann so:
IIf([tbl_Institutionen].[Teilnahme_JN] = 1,'X',Null)

NetPower
24.01.2008, 14:42
Alles klar, Arne, das war es. Du hast mir sehr geholfen!! :)