ComboBox Frage

Ja da iser wieder ^^ ich mit meinen Fragen :smiley:

Also ich machs kurz:

Quelltext:

Private Sub DropDownListHersteller()
 Dim Hsteller As String
 While Not rsMain.EOF
 Hsteller = FeldInhalt(rsMain.Fields("Hersteller"))
 If Not Hsteller = "" Then
 If Not cboHersteller.Text (oder cboHersteller.ItemData oder Name probiert) = Hsteller Then
 cboHersteller.AddItem Hsteller
 End If
 End If
 rsMain.MoveNext
 Wend
End Sub

Wie Prüfe ich, ob der Hersteller schon einmal in der ComboBox eingetragen ist? Ich dachte mir das so wie da oben beschrieben. Aber das klappt nich. Schreibt immernoch für jeden Hersteller der in der liste is n neuen eintrag.

Ich denk ma diesma ists n einfach lösbares Problem :smiley:

güße vom unheimlichen digi ^^

Hallo digi,

dann waren die Weihnachtswünsche ja verfrüht.

Private Sub DropDownListHersteller()
Dim Hsteller As String
While Not rsMain.EOF
Hsteller = FeldInhalt(rsMain.Fields(„Hersteller“))
If Not Hsteller = „“ Then
If Not cboHersteller.Text (oder
cboHersteller.ItemData oder Name probiert) = Hsteller Then
cboHersteller.AddItem Hsteller
End If
End If
rsMain.MoveNext
Wend
End Sub

Du prüfst nur den Inhalt des sichtbaren Fensters und das auch nur, wenn die Combobox so eingestellt ist, daß Du manuell etwas eintragen kannst. Das ist sicher nicht gewollt.

Du brauchst entweder eine zweite Schleife.

Flag = False
For i = 0 to cboHersteller.ListCount -1
 If cboHersteller.List(i) = Hersteller Then Flag = True
Next
If Flag = False Then
 cboHersteller.AddItem Hsteller
End If

oder Du schreibst alle Items auch in einen String, wenn es nicht zu viele werden und durchsuchst den.

If Instr(HerstellerString,Hersteller) = 0 then
 cboHersteller.AddItem Hsteller
 HerstellerString = HerstellerString + Hersteller + ";"
End If

Gruß, Rainer