Discussion:
Listenfeld mit VBA-SQL-Daten füllen
(zu alt für eine Antwort)
Joerg Meier
2003-08-18 11:46:40 UTC
Permalink
Hallo NG,

ich möchte in Listenfeld in einem Formular mit Daten aus einer SQL-Abfrage
in VBA mit Daten füllen.

Private Sub
dim strsql as string
strsql = "Select....
Me!lst_ergebnis_suche.RowSource = strSQL
Me!lst_ergebnis_suche.ColumnCount = 5
Me!lst_ergebnis_suche.ColumnWidths = "0cm;1,5cm; 1,5cm; 1,5cm; 1,5cm;"
End Sub

Das Listenfeld lst_ergebnis_suche ist im Formular erstellt. Leider werden
keinerlei Daten angezeigt.
Warum werden die Daten nicht übergeben ?
Was muss ich einstellen ?

Danke, Jörg Meier
Matthias Müller
2003-08-18 12:11:10 UTC
Permalink
Hhallo Jörg,

versuch mal
Me!lst_ergebnis_suche.ColumnWidths = "0cm, 1.5cm, 1.5cm, 1.5cm, 1.5cm"
das sollte helfen

Gruß
Matthias
Post by Joerg Meier
Hallo NG,
ich möchte in Listenfeld in einem Formular mit Daten aus einer SQL-Abfrage
in VBA mit Daten füllen.
Private Sub
dim strsql as string
strsql = "Select....
Me!lst_ergebnis_suche.RowSource = strSQL
Me!lst_ergebnis_suche.ColumnCount = 5
Me!lst_ergebnis_suche.ColumnWidths = "0cm;1,5cm; 1,5cm; 1,5cm; 1,5cm;"
End Sub
Das Listenfeld lst_ergebnis_suche ist im Formular erstellt. Leider werden
keinerlei Daten angezeigt.
Warum werden die Daten nicht übergeben ?
Was muss ich einstellen ?
Danke, Jörg Meier
Joerg Meier
2003-08-20 17:54:24 UTC
Permalink
Hallo liebe NG,

vielen Dank erstmal für all die Hilfen, leider funktioniert es nicht.
Ich habŽ esjetzt mal mit einer einfacheren Abfrage probiert, die Ihr unten
seht.
Später möchte ich die Abfrage noch entsprechend verändern, da Sie praktisch
mit Daten aus einem Formular gefüllt wird und somit als "Suchmaschine"
verwendet wird.
Die ausgewählten Datensätze kann man dann durch Doppelklick direkt ändern.
Das machŽ ich natürlich aber mit getrennten SubŽs.
Nur, damit Ihr wisst, was noch alles passiert und warum ich diesen Aufwand
mache.

In diesem Zusammenhang habŽ ich dann auch schon das zweite Problem. In der
größeren SQL sind verschiedene Abfragen miteinander in Beziehung gesetzt,
meist 1:n. Um zu vermeiden, dass mir also 5 Datensätze angezeigt werden,
weil ich 5 Datensätze in der n zu dem einen Datensatz habe, soll ich die
Diestinct verwenden. Keine Ahnung, wo ich die einbaue. HabŽ schon einiges
probiert.
Mein größtes Problem ist aber erstmal, dass ich keine Daten angezeigt
bekomme.
Der SQL müsste eigentlich passen, oder ?
An was kann das noch liegen? Ich habŽ das in einer anderen DB schonmal
ausprobiert und es hat geklappt. HabŽ alles genau verglichen. Im Grunde ist
alles identisch.

Also, Ihr seht in der ersten Sub die einfache SQL und wie es dann weiter
gehen sollte, als Kommentare bezeichnet.

Private Sub Datensuche()
Dim a, b, strsql, strkrit, strorder As String

a = "SELECT tbl_master.IDMain, tbl_master.LfdNr, tbl_master.EAS,
tbl_master.Datum, tbl_master.Uhrzeit, tbl_master.JahrMonat,
tbl_master.Geheim, tbl_master.Dringlich, tbl_master.Ersteller,
tbl_master.Abgeschlossen, tbl_master.Zeit "
b = "FROM tbl_master;"

strsql = a & b

'strkrit = " WHERE 1=1"

'If Not IsNull(Forms!frm_suche!idmain) Then
'strkrit = strkrit & " AND (qry_master_suche.IDMain like '" &
Forms!frm_suche!idmain & "*') "
'End If

'strOrder = " ORDER BY tbl_master.IdMain "

'strSQL = strSQL & " " & strKrit & " " & strOrder

Forms!frm_suche!lst_search.RowSource = strsql ' Datenherkunft für das
Listenfeld aus dem SQL-String bestimmen
Forms!frm_suche!lst_search.ColumnCount = 11 ' Spaltenanzahl
Forms!frm_suche!lst_search.ColumnWidths = "3cm, 3cm, 3cm, 3cm, 3cm, 3cm,
3cm, 3cm, 3cm, 3cm, 3cm" ' Spaltenbreite

End Sub

Die große SQL sieht so aus. Der Rest bleibt ja dann eigentlich gleich, bis
auf das, dass ich die Spalten verändere und mehere Kriterien hinzukommen
sowie die strsql mit mehrerne Variablen definiert wird.

Private Sub Datensuche()
...
a = "SELECT qry_master_suche.IDMain, qry_master_suche.LfdNr,
qry_master_suche.EAS, qry_master_suche.Datum, qry_master_suche.Uhrzeit,
qry_master_suche.Geheim, qry_master_suche.geheimhaltung,
qry_master_suche.Dringlich, qry_master_suche.Dringlichkeit,
qry_master_suche.Ersteller, qry_master_suche.Abgeschlossen,
qry_master_suche.Zeit, qry_absender_suche.Absender,
qry_absender_suche.Abkuerzung, qry_absender_suche.AZ_Absender,
qry_absender_suche.FSNR_Absender, qry_absender_suche.Ursprungsdatum,
qry_absender_suche.Bearbeiter, qry_absender_suche.Zeit,
qry_weitergeleitet_suche.Weitergeleitet,
qry_weitergeleitet_suche.Abkuerzung,
qry_weitergeleitet_suche.AZ_Weitergeleitet,
qry_weitergeleitet_suche.FSNR_Weitergeleitet,
qry_weitergeleitet_suche.tbl_weitergeleitet.Uebermittlung,
qry_weitergeleitet_suche.tbl_uebermittlung.Uebermittlung,
qry_weitergeleitet_suche.Bearbeiter, qry_weitergeleitet_suche.Zeit,
qry_empfaenger_suche.idorganisation, qry_empfaenger_suche.Abkuerzung, "
b = "qry_empfaenger_suche.tbl_empfaenger_join.Uebermittlung ,
qry_empfaenger_suche.tbl_uebermittlung.Uebermittlung,
qry_empfaenger_suche.Erreichbarkeit, qry_empfaenger_suche.Notiz,
qry_empfaenger_suche.Uhrzeit, qry_empfaenger_suche.Bearbeiter,
qry_empfaenger_suche.Zeit, qry_etb_suche.idetb, qry_etb_suche.ETB,
qry_etb_suche.lfdnr, qry_etb_suche.Bearbeiter, qry_etb_suche.Zeit,
qry_schlagwort_suche.tbl_schlagwort_join.Schlagwort,
qry_schlagwort_suche.tbl_schlagwort.Schlagwort,
qry_schlagwort_suche.Bearbeiter, qry_schlagwort_suche.Zeit,
qry_bearbeitungsvermerk_suche.Vermerk,
qry_bearbeitungsvermerk_suche.Benutzer, qry_bearbeitungsvermerk_suche.Zeit "
c = "FROM (((((qry_master_suche LEFT JOIN qry_etb_suche ON
qry_master_suche.IDMain = qry_etb_suche.idmain) LEFT JOIN
qry_empfaenger_suche ON qry_master_suche.IDMain =
qry_empfaenger_suche.idmain) LEFT JOIN qry_bearbeitungsvermerk_suche ON
qry_master_suche.IDMain = qry_bearbeitungsvermerk_suche.IDMain) LEFT JOIN
qry_schlagwort_suche ON qry_master_suche.IDMain =
qry_schlagwort_suche.IDMain) LEFT JOIN qry_absender_suche ON
qry_master_suche.IDMain = qry_absender_suche.IDMain) LEFT JOIN
qry_weitergeleitet_suche ON qry_master_suche.IDMain =
qry_weitergeleitet_suche.IDMain "

strsql = a & b & c
......
End Sub

Vielen Dank, MfG

Jörg Meier

Loading...