Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst VB6 - Wie Comboboxen verschachteln ?

Mitglied: skid

skid (Level 1) - Jetzt verbinden

12.03.2010 um 08:52 Uhr, 3798 Aufrufe, 18 Kommentare

Moin,

ich versuche gerade 3 Comboboxen in Abhänigkeit voneinander zu befüllen und je nach dem was ausgewählt ist eine MsgBox anzuzeigen.....nur so zum Testen des ganzen.

Das ganze sieht so aus:

Zuerst wird die erste Combobox gefüllt:

01.
Private Sub Form_Load()
02.
    
03.
    Autos.AddItem "Kleinwagen"
04.
    Autos.AddItem "Mittelklassewagen"
05.
    Autos.AddItem "Luxuslimousine"
06.
    Autos.AddItem "Transporter"
07.
    Autos.AddItem "Motorrad"
08.
    Combo1.Clear
09.
    Combo2.Clear
10.

11.
End Sub
Dann geht´s so weiter...

01.
Private Sub Autos_Click()
02.

03.
    Select Case Autos.ListIndex
04.

05.
        Case 0
06.

07.
            Text1 = "Kleinwagen ist ausgewählt"
08.
            
09.
        Case 1
10.

11.
            MsgBox "Mittelklassewagen ist ausgewählt"
12.

13.
        Case 4
14.

15.
            Combo1.AddItem "Reifen"
16.
            Combo1.AddItem "Tank"
17.
            Combo1.AddItem "Sitzbank"
18.
            Combo1.ListIndex = 0
19.
            
20.
    End Select
21.

22.

23.
    Select Case Combo1.ListIndex
24.

25.
        Case 0
26.

27.
            MsgBox "Reifen"
28.
            Combo2.AddItem "Felge"
29.
            Combo2.AddItem "Ventil"
30.
            Combo2.AddItem "Speiche"
31.
            Combo2.ListIndex = 0
32.
           
33.
        Case 1
34.
            
35.
           MsgBox "Ventil"
36.

37.
         End Select
38.
    
39.
End Sub
Wähle ich nun den Eintrag "Motorrad" aus, wird die Combobox1 befüllt, steht auf dem ersten Eintrag "Reifen", die MsgBox erscheint und Combo2 wird befüllt und steht auf "Felge".
Wähle ich nun in der Combobox1 "Ventil" aus pasiert nichts mehr obwohl da doch die nächste MsgBox erscheinen sollte.

Vielleicht kann mir ja jemand sagen was ich übersehen habe bzw. was ich falsch mache ?

SKID
Mitglied: 76109
12.03.2010 um 12:48 Uhr
Hallo skid!

In etwa so:
01.
Private Sub Form_Load()
02.
    Autos.AddItem "Kleinwagen"
03.
    Autos.AddItem "Mittelklassewagen"
04.
    Autos.AddItem "Luxuslimousine"
05.
    Autos.AddItem "Transporter"
06.
    Autos.AddItem "Motorrad"
07.
    Autos.ListIndex = 0
08.
End Sub
09.

10.
Private Sub Autos_Change()
11.
    Combo1.Clear:  Combo2.Clear
12.

13.
    Select Case Autos.ListIndex
14.
        Case 0
15.
            Combo1.AddItem "Kategorie 1"
16.
            Combo1.AddItem "Kategorie 2"
17.
            Combo1.AddItem "Kategorie 3"
18.
        Case 1
19.
            Combo1.AddItem "Kategorie 1"
20.
            Combo1.AddItem "Kategorie 2"
21.
            Combo1.AddItem "Kategorie 3"
22.
        Case 2
23.
            Combo1.AddItem "Kategorie 1"
24.
            Combo1.AddItem "Kategorie 2"
25.
            Combo1.AddItem "Kategorie 3"
26.
        Case 3
27.
            Combo1.AddItem "Kategorie 1"
28.
            Combo1.AddItem "Kategorie 2"
29.
            Combo1.AddItem "Kategorie 3"
30.
        Case 4
31.
            Combo1.AddItem "Kategorie 1"
32.
            Combo1.AddItem "Kategorie 2"
33.
            Combo1.AddItem "Kategorie 3"
34.
    End Select
35.
End Sub
36.

37.
Private Sub Combo1_Change()
38.
    Combo2.Clear
39.
    
40.
    Select Case Combo1.ListIndex
41.
        Case 0
42.
            Combo2.AddItem "Teile 1"
43.
            Combo2.AddItem "Teile 2"
44.
            Combo2.AddItem "Teile 3"
45.
        Case 1
46.
            Combo2.AddItem "Teile 1"
47.
            Combo2.AddItem "Teile 2"
48.
            Combo2.AddItem "Teile 3"
49.
        Case 2
50.
            Combo2.AddItem "Teile 1"
51.
            Combo2.AddItem "Teile 2"
52.
            Combo2.AddItem "Teile 3"
53.
    End Select
54.
End Sub
55.

56.
Private Sub Combo2_Change()
57.
    Select Case Combo2.ListIndex
58.
        Case 0
59.
            MsgBox "Auswahl: " & Autos.Text & ";" & Combo1.Text & ";" & Combo2.Text
60.
        Case 1
61.
            MsgBox "Auswahl: " & Autos.Text & ";" & Combo1.Text & ";" & Combo2.Text
62.
        Case 2
63.
            MsgBox "Auswahl: " & Autos.Text & ";" & Combo1.Text & ";" & Combo2.Text
64.
    End Select
65.
End Sub
Oder das gleiche etwas anders:
01.
Private Sub Form_Load()
02.
    Dim Items As Variant
03.
    
04.
    Items = Array("Kleinwagen", "Mittelklassewagen", "Luxuslimousine", "Transporter", "Motorrad")
05.

06.
    Call InitComboBox(Autos, Items)
07.
    
08.
    Autos.ListIndex = 0
09.
End Sub
10.

11.
Private Sub Autos_Change()
12.
    Combo1.Clear:  Combo2.Clear
13.
    
14.
    Select Case Autos.ListIndex
15.
        Case 0: Call InitComboBox(Combo1, Array("Kategorie 1", "Kategorie 2", "Kategorie 3"))
16.
        Case 1: Call InitComboBox(Combo1, Array("Kategorie 1", "Kategorie 2", "Kategorie 3"))
17.
        Case 2: Call InitComboBox(Combo1, Array("Kategorie 1", "Kategorie 2", "Kategorie 3"))
18.
        Case 3: Call InitComboBox(Combo1, Array("Kategorie 1", "Kategorie 2", "Kategorie 3"))
19.
        Case 4: Call InitComboBox(Combo1, Array("Kategorie 1", "Kategorie 2", "Kategorie 3"))
20.
    End Select
21.
End Sub
22.

23.
Private Sub Combo1_Change()
24.
    Combo2.Clear
25.

26.
    Select Case Combo1.ListIndex
27.
        Case 0: Call InitComboBox(Combo2, Array("Teile 1", "Teile 2", "Teile 3"))
28.
        Case 1: Call InitComboBox(Combo2, Array("Teile 1", "Teile 2", "Teile 3"))
29.
        Case 2: Call InitComboBox(Combo2, Array("Teile 1", "Teile 2", "Teile 3"))
30.
    End Select
31.
End Sub
32.

33.
Private Sub Combo2_Change()
34.
    Select Case Combo2.ListIndex
35.
        Case 0: MsgBox "Auswahl: " & Autos.Text & ";" & Combo1.Text & ";" & Combo2.Text
36.
        Case 1: MsgBox "Auswahl: " & Autos.Text & ";" & Combo1.Text & ";" & Combo2.Text
37.
        Case 2: MsgBox "Auswahl: " & Autos.Text & ";" & Combo1.Text & ";" & Combo2.Text
38.
    End Select
39.
End Sub
40.

41.
Private Sub InitComboBox(ByRef ComboBox, ByRef Items)
42.
    Dim i As Integer
43.
    
44.
    For i = 0 To UBound(Items):  ComboBox.AddItem Items(i):  Next
45.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: TsukiSan
12.03.2010 um 23:47 Uhr
Hallo skid,

was steht denn in deinem "Click-Ereignis" von Combobox1?

Gruss
Tsuki
Bitte warten ..
Mitglied: skid
15.03.2010 um 08:33 Uhr
Zitat von 76109:
Hallo skid!

In etwa so:
01.
>.......
02.
> 
Gruß Dieter




Moin Dieter,

danke für den Code - habe es zum laufen gebracht !
Ich musste allerdings statt dem "Change" das "Click"- Ereignis verwenden - andersrum hat es irgendwie nicht funktioniert1

SKID
Bitte warten ..
Mitglied: skid
15.03.2010 um 08:34 Uhr
Zitat von TsukiSan:
Hallo skid,

was steht denn in deinem "Click-Ereignis" von Combobox1?

Gruss
Tsuki

Hi Tsuki,

ich glaube das war u.a. noch das, was bei meinem Code gefehlt hat.....das "Click-Ereignis" von Combobox1 !

Gruß
SKID
Bitte warten ..
Mitglied: skid
15.03.2010 um 14:41 Uhr
Hätte da noch eine Frage......

Ich habe 2 Comboboxen die sich in einem "Click"-Ereignis eines Command-Buttons befinden.
Nun möchte ich gerne das wenn ich in einer Combobox einen Eintrag auswähle die andere Combobox gesperrt, so das man nichts auswählen kann. Das ganze aber bevor ich den Command-Button geklickt habe.

Vielleicht hätte ja jemand eine Lösung ?

Gruß
SKID
Bitte warten ..
Mitglied: 76109
15.03.2010 um 17:44 Uhr
Zitat von skid:
danke für den Code - habe es zum laufen gebracht !
Freut mich
Ich musste allerdings statt dem "Change" das "Click"- Ereignis verwenden - andersrum hat es irgendwie nicht funktioniert1
Yepp, ich habe den Code auch in VBA gemacht und da ist es standardmäßig Change.

Gruß Dieter
Bitte warten ..
Mitglied: 76109
15.03.2010 um 17:48 Uhr
Hallo Skid!

Zitat von skid:
Nun möchte ich gerne das wenn ich in einer Combobox einen Eintrag auswähle die andere Combobox gesperrt, so das man
nichts auswählen kann. Das ganze aber bevor ich den Command-Button geklickt habe.
Versuch mal mit:
01.
Combo1.Locked = True    'Gesperrt  
02.
Combo1.Locked = False   'Freigegeben
Gruß Dieter
Bitte warten ..
Mitglied: skid
16.03.2010 um 08:24 Uhr
Zitat von 76109:
Hallo Skid!

> Zitat von skid:
> Nun möchte ich gerne das wenn ich in einer Combobox einen Eintrag auswähle die andere Combobox gesperrt, so das
man
> nichts auswählen kann. Das ganze aber bevor ich den Command-Button geklickt habe.
Versuch mal mit:
01.
> Combo1.Locked = True    'Gesperrt  
02.
> Combo1.Locked = False   'Freigegeben
03.
> 
Gruß Dieter

Hallo Dieter,

das hat leider nicht funktioniert.
Die zweite Combobox bleibt weiterhin aktiv und lässt sich aufklappen um eine Auswahl zu treffen.

Gruß
SKID
Bitte warten ..
Mitglied: 76109
16.03.2010 um 09:22 Uhr
Hallo Skid!

Also, wenn's bei der ComboBox1 funktioniert, dann musst Du das gleiche natürlich auch für die ComboBox2 auch machen.

Gruß Dieter
Bitte warten ..
Mitglied: skid
16.03.2010 um 09:33 Uhr
Zitat von 76109:
Hallo Skid!

Also, wenn's bei der ComboBox1 funktioniert, dann musst Du das gleiche natürlich auch für die ComboBox2 auch
machen.

Gruß Dieter

Hi,

das mit erster und zweiter Combo war nur allgemein gesagt - also keine bestimmte.

SKID
Bitte warten ..
Mitglied: 76109
16.03.2010 um 12:11 Uhr
Hallo Skid!

Sorry, dann habe ich Dich wohl missverstanden. Da ich kein VB6 habe, kann ich Dir leider auch nicht sagen, wie es in Deiner VB-Umgebung definiert werden kann.

Gruß Dieter
Bitte warten ..
Mitglied: TsukiSan
16.03.2010 um 13:36 Uhr
Es sollte sich die Combo-Box mit deren Eigenschaft "Enabled" sperren (False) und entsperren (True) lassen.

also:
01.
Combo1.Enabled = False
02.
'bzw.
03.
Combo1.Enabled = True
Gruss
Tsuki
Bitte warten ..
Mitglied: skid
16.03.2010 um 13:55 Uhr
Zitat von TsukiSan:
Es sollte sich die Combo-Box mit deren Eigenschaft "Enabled" sperren (False) und entsperren (True) lassen.

also:
01.
> Combo1.Enabled = False
02.
> 'bzw.
03.
> Combo1.Enabled = True
04.
> 
Gruss
Tsuki

Hi,

ja, das tut es auch aber erst dann wenn ich den Command-Button geklickt habe.
Die Combo-Boxen haben keine Click-Ereignisse.

Sieht so aus....in vereinfachter Form....

01.
Public Sub Command1_Click()
02.

03.
       Select Case Combo1.ListIndex
04.

05.
            Case 0
06.
                 
07.
                               Hier kann man irgendwas ausgewählen
08.
     
09.
       End Select
10.

11.
       Select Case Combo2.ListIndex
12.

13.
            Case 0
14.
                 
15.
                               Hier kann man irgendwas ausgewählen
16.
     
17.
       End Select
18.

19.
End Sub
Wird in der ersten Combo was ausgewählt soll die andere deaktiviert werden.
Danach klicke ich meinen Command-Button um die Verarbeitung zu starten


Gruß
SKID
Bitte warten ..
Mitglied: 76109
16.03.2010 um 14:30 Uhr
Hallo Tsuki!

Stimmt, die habe ich doch glatt verwechselt. Mit Locked wird die Eingabe gesperrt und mit Enabled wird ComboBox ausgegraut angezeigt.

Gruß Dieter
Bitte warten ..
Mitglied: skid
16.03.2010 um 14:37 Uhr
Eine andere Möglichkeit wäre, nach dem Command-Button-Klick, abzufragen ob in mehr als einer Combobox was ausgewählt ist.

Vielleicht habt ihr ja dazu eine Idee ?!

Gruß
SKID
Bitte warten ..
Mitglied: TsukiSan
16.03.2010 um 23:10 Uhr
Hallo didi1954,

macht ja nix! Viel schlimmer ist weiter untern:
Eine andere Möglichkeit wäre, nach dem Command-Button-Klick, abzufragen ob in mehr als einer Combobox was
ausgewählt ist.
Hierbei frage ich mich, ob VBA zulässt, mehreren Steuerelemente den Fokus zu geben

Gruss
Tsuki
Bitte warten ..
Mitglied: 76109
17.03.2010 um 10:59 Uhr
Hallo Skid!

Deine Vorgehensweise ist irgendwie der falsche Weg.

Wie Tsuki schon richtig erwähnt hat, kann immer nur ein Object den Fokus haben.

Ob in einer ComboBox eine Veränderung stattgefunden hat, kannst/solltest Du im Endeffekt nur in der ComboBox-Click-Routine erfassen. Wenn das Auswahlfeld in der ComboBox Leer ist, dann gibt ComBox.Value einen Leerstring "" zurück, ansonsten den Auswahl-Text. Dir steht aber auch die Möglichkeit offen, am Anfang des Formulars globale Variablen zu deklarieren z.B. Dim ComboBox1Click As Boolean und in dem CombBox-Click-Ereignis setzt Du diese Variable auf True und kannst diese Variable z.B. in Deinem Button_Click-Ereignis auf True/False prüfen und wieder auf False setzen. Sowas in der Art.

Die ComboBoxen in irgendwelcher Routine zu initialisieren ist eine Sache, aber alles andere, wird in den Click-Ereignissen der jeweiligen ComboBoxen geregelt und das Ergebnis gibt Dir die CombBox als ComboBox.Value zurück.

Gruß Dieter
Bitte warten ..
Mitglied: skid
18.03.2010 um 12:11 Uhr
Ich habe es jetzt so gelöst das ich jede einzelne Combo-Box abfrage ob was ausgewählt ist.
Das ganze ist bestimmt nicht ganz glücklich bzw. Eleganz gelöst aber es funktioniert.

Dank Euch für Euere Hilfe!!

SKID
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Combobox verknüpfen
Frage von GundelputzMicrosoft Office1 Kommentar

Hallo alle zusammen, ich möchte mit Excel 2010 und VBA eine Tabelle durchsuchen. In der Tabelle sind Spalten wie ...

Batch & Shell
Powershell Combobox
gelöst Frage von PeterzBatch & Shell2 Kommentare

Hallo, wie kann ich bei einer Combobox und/oder einer Messagebox das rechts oben befindliche Kreuz (weiß auf rotem Grund) ...

VB for Applications
ComboBox - Except FileType
gelöst Frage von joehuabaVB for Applications3 Kommentare

Guten Morgen :) Ich komme leider nicht weiter, obwohl es wieder nur mal ne Kleinigkeit ist. Ich entwickle etwas ...

VB for Applications
VB.net Combobox databinding langsam
Frage von ForgottenRealmVB for Applications4 Kommentare

Moinmoin, ich habe ein kleines Formular mit einer Combobox. Dies befühle ich zur Laufzeit mit einer Datatable, welche etwa ...

Neue Wissensbeiträge
Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 1 TagInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 2 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 4 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Sicherheit

Wikileaks-Gründer Julian Assange wurde festgenommen

Information von Frank vor 7 TagenSicherheit3 Kommentare

Wikileaks-Gründer Julian Assange wurde heute in London festgenommen. Die Botschaft Ecuadors, in der er seit sieben Jahren lebte, hat ...

Heiß diskutierte Inhalte
Tipps & Tricks
Verdammt voll erwischt
Frage von AlchimedesTipps & Tricks23 Kommentare

Folgende Mail habe ich auf meinem Freenet Account erhalten: Nun folgendes Problem: 1) Ich besuche Porno Seiten yep hat ...

Drucker und Scanner
Xerox 7328 muss jeden Tag neu installert werden
Frage von PN-SchrauberDrucker und Scanner20 Kommentare

hallo, ich habe in Problem mit einem unserer Drucker. Vorweg, die meisten unserer Netzwerkdrucker laufen über einen Druckserver, dieser ...

HTML
Google maps
Frage von jensgebkenHTML20 Kommentare

Hallo Gemeinschaft, hab mal ne Frage zu Maps - habe es hinbekommen, dass ich einen iframe link erstellen kann ...

Switche und Hubs
PC Verursach Probleme im Netzwerk
gelöst Frage von spoboeSwitche und Hubs16 Kommentare

Hallo zusammen, folgene Situation macht mich inzwischen ratlos: In unserem Betrieb ist ein Rechner über die Hausverkabelung an einem ...