Listenbox

Hi,
ich habe eine Listenbox und in dieser Liste schreibe ich irgendwelche Zahlen mit ADDITEM. Nun will ich aber später die Liste für die Erstellung einer Schleife nutzen.
Beipiel:

While listeboxname.???
…select * from aaa where id = listenboxname.value
wend

  1. wie kann ich die Anzahl der Säzue in der Listenbox ermitteln. Habe mit ListCount versucht, ging es aber nicht?

  2. Den Inhalt bekomme ich wohl über Listenbox.value, richtig?

Gruß

Rezaei

Hi,

While listeboxname.???
…select * from aaa where id = listenboxname.value
wend

??? Der SQL-Befehl sieht aber eigenartig aus … Das war ja aber nicht Deine Frage, das bekommst Du schon hin.

  1. wie kann ich die Anzahl der Säzue in der Listenbox
    ermitteln. Habe mit ListCount versucht, ging es aber nicht?

Doch, Listcount ist richtig. Wenn Du damit aber die Zeilen auslesen willst, mußt Du beachten, daß die Liste mit Null zu zählen anfägt. Drei Zeilen sind damit Zeile 0,1 und 2; Als0
For i=0 to List1.Listcount-1
'mach was
Next

  1. Den Inhalt bekomme ich wohl über Listenbox.value, richtig?

Nein, den Inhalt einer Zeile bekommst Du mit …

List1.List(Zeilennummer)

Gruß, Rainer

Hallo,
Danke für Deine Antwort. Habe ich es gemacht, jetzt geht in ein endlose Schleife.
Das Programmteil siht nun so aus. Ich nutze die Standnummer, die in der Listebox schon vorhanden ist (listBox_temp) für die Selektion, die in der Schleife aufgeabut wird.
Keine Ahnung, was da los ist.
*******************Anfang
'Standnummern in eine Liste speichern
Set rstliste = New ADODB.Recordset

rstliste.CursorType = adOpenKeyset
rstliste.LockType = adLockPessimistic

'Cursor auf Tabelle setzen und selektieren
rstliste.CursorLocation = adUseClient

rstliste.Open „select stand_nr from aust where messenr = '“ & m_nr & „’ and adressnr = '“ & adr_nr & „’“, ObjDatenbank.cnnDb, adOpenDynamic, adLockOptimistic

'In der While-Schleife Inhalt der Tabelle in einer Combobox hinzufügen
While Not rstliste.EOF
ListBox_temp.AddItem rstliste!stand_nr
rstliste.MoveNext
Wend
Aus_info.Show
rstliste.Close

'Selektieren von Vorveranstallungen mit Hilfe der Fuktion Staen-dam(Vor_messe,adressnr)
Set rstvorveran1 = New ADODB.Recordset

rstvorveran1.CursorType = adOpenKeyset
rstvorveran1.LockType = adLockPessimistic

‚rstvorveran.Open „select zu_halle_nr,zu_stand_bez1, zu_stand_bez2, zu_stand_flaeche from aust where messenr = '“ & m_nr & "‘ and stand_nr = ‚" & std_nr & "‘ and adressnr = ‚" & adr_nr & "‘", ObjDatenbank.cnnDb, adOpenDynamic, adLok-kOptimistic
‚rstvorveran1.Open „select zu_halle_nr,zu_stand_bez1, zu_stand_bez2, zu_stand_flaeche from aust where messenr = '“ & m_nr & "‘ and adressnr = ‚" & adr_nr & "‘", ObjDatenbank.cnnDb, adOpenDynamic, adLockOptimistic

satz = Null ’ Fels initialisieren

For zahl = 0 To ListBox_temp.ListCount - 1

rstvorveran1.Open „select stand_nr, zu_halle_nr,zu_stand_bez1, zu_stand_bez2, zu_stand_flaeche from aust where messenr = '“ & m_nr & „’ and stand_nr = '“ & List-Box_temp.List(zahl) & „’ and adressnr = '“ & adr_nr & „’“, ObjDatenbank.cnnDb, adO-penDynamic, adLockOptimistic
'Aus_info.vorveran.value = Aus_info.vorveran.value & " " & rstvorveran1!zu_halle_nr & " " & rstvorveran1!zu_stand_bez1 & „-“ & rstvorveran1!zu_stand_bez2 & " " & rstvor-veran1!zu_stand_flaeche & " m²" & " "

satz = satz & rstvorveran1!zu_halle_nr & " " & rstvorveran1!zu_stand_bez1 & „-“ & rstvorveran1!zu_stand_bez2 & " " & rstvorveran1!zu_stand_flaeche & " m²" & " "
zahl = zahl + 1 ’ Zähler hochzählen.
’ Für die nächste runde wieder Tabelleschliessen und öffnen
rstvorveran1.Close
Set rstvorveran1 = New ADODB.Recordset
rstvorveran1.CursorType = adOpenKeyset
rstvorveran1.LockType = adLockPessimistic
'ComboBox1.Move
Next
'Wend ’ While-Schleife beenden

Aus_info.vorveran.value = satz

If zaehler = 0 Then
rstvorveran1.Close
End If

******************Ende

Gruß

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
habe den Fehler gefunde. Hatte mein Zaehler immer auf null gesetzt. Es funktioniert jetzt. Wünsche ich Dir ein schönes Wochenende.

Gruß

Rezaei

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Habe ich es gemacht, jetzt geht in
ein endlose Schleife.

sicher? Ich sehe eigentlich keine.

Das Programmteil siht nun so aus. Ich nutze die Standnummer,
die in der Listebox schon vorhanden ist (listBox_temp) für die
Selektion, die in der Schleife aufgeabut wird.
Keine Ahnung, was da los ist.
*******************Anfang
'Standnummern in eine Liste speichern
Set rstliste = New ADODB.Recordset

OK.

rstliste.CursorType = adOpenKeyset
rstliste.LockType = adLockPessimistic

'Cursor auf Tabelle setzen und selektieren
rstliste.CursorLocation = adUseClient

rstliste.Open „select stand_nr from aust where messenr = '“ &
m_nr & „’ and adressnr = '“ & adr_nr & „’“,
ObjDatenbank.cnnDb, adOpenDynamic, adLockOptimistic

'In der While-Schleife Inhalt der Tabelle in einer Combobox
hinzufügen
While Not rstliste.EOF
ListBox_temp.AddItem rstliste!stand_nr
rstliste.MoveNext
Wend
Aus_info.Show
rstliste.Close

Der Teil sieht für mich OK aus, obwohl icn nicht so der Datenbankexperte bin.

'Selektieren von Vorveranstallungen mit Hilfe der Fuktion
Staen-dam(Vor_messe,adressnr)
Set rstvorveran1 = New ADODB.Recordset

rstvorveran1.CursorType = adOpenKeyset
rstvorveran1.LockType = adLockPessimistic

‚rstvorveran.Open „select zu_halle_nr,zu_stand_bez1,
zu_stand_bez2, zu_stand_flaeche from aust where messenr = '“ &
m_nr & "‘ and stand_nr = ‚" & std_nr & "‘ and adressnr = ‚" &
adr_nr & "‘", ObjDatenbank.cnnDb, adOpenDynamic,
adLok-kOptimistic
‚rstvorveran1.Open „select zu_halle_nr,zu_stand_bez1,
zu_stand_bez2, zu_stand_flaeche from aust where messenr = '“ &
m_nr & "‘ and adressnr = ‚" & adr_nr & "‘",
ObjDatenbank.cnnDb, adOpenDynamic, adLockOptimistic

satz = Null ’ Fels initialisieren

For zahl = 0 To ListBox_temp.ListCount - 1

rstvorveran1.Open „select stand_nr,
zu_halle_nr,zu_stand_bez1, zu_stand_bez2, zu_stand_flaeche
from aust where messenr = '“ & m_nr & „’ and stand_nr = '“ &
List-Box_temp.List(zahl)

ja, das ist richtig

& „’ and adressnr = '“ & adr_nr &

„’“, ObjDatenbank.cnnDb, adO-penDynamic, adLockOptimistic
'Aus_info.vorveran.value = Aus_info.vorveran.value & " " &
rstvorveran1!zu_halle_nr & " " & rstvorveran1!zu_stand_bez1 &
„-“ & rstvorveran1!zu_stand_bez2 & " " &
rstvor-veran1!zu_stand_flaeche & " m²" & " "

satz = satz & rstvorveran1!zu_halle_nr & " " &
rstvorveran1!zu_stand_bez1 & „-“ & rstvorveran1!zu_stand_bez2
& " " & rstvorveran1!zu_stand_flaeche & " m²" & " "
zahl = zahl + 1 ’ Zähler hochzählen.

Wie meinen? Du willst nur jede zweite Zeile?

’ Für die nächste runde wieder Tabelleschliessen und
öffnen
rstvorveran1.Close
Set rstvorveran1 = New ADODB.Recordset
rstvorveran1.CursorType = adOpenKeyset
rstvorveran1.LockType = adLockPessimistic
'ComboBox1.Move
Next
'Wend ’ While-Schleife beenden

Aus_info.vorveran.value = satz

If zaehler = 0 Then
rstvorveran1.Close
End If

******************Ende

Eine Ursache für eine Endlosschleife kann ich nicht entdecken. Versuch’s doch mal mit debuggen.

Mir ist aber aufgefallen, daß Du für jeden Schleifendurchlauf ein neues Recordset öffnest und schließt. Das kostet heftig Zeit. Bist Du sicher mit der Endlosschleife? Wie lang ist die Liste, wie groß sind die recordsets? Je nach Datenmenge kann das lang dauern.

Gruß, Rainer

Hallo,

habe den Fehler gefunde.

schön. :smile:

Hatte mein Zaehler immer auf null
gesetzt. Es funktioniert jetzt. Wünsche ich Dir ein schönes
Wochenende.

Danke, wünsche ich Dir auch.

Gruß, Rainer