Inhalt von Combobox 1 in Combobox 2 kopieren

  • VB.NET

Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von LudwigM.

    Inhalt von Combobox 1 in Combobox 2 kopieren

    Hallo,
    ich bin VB-Anfänger und möchte gerne den Inhalt der Combobox1 in die Combobox2 kopieren.
    Das heißt beide sollen auf dem gleichen Stand sein.
    Die Googlesuche ergab leider Code der anscheinend nur in älteren Versionen läuft.

    Vielen Dank im Voraus
    Ludwig
    Guten Morgen,

    wie @FloFuchs sagte, ist es das Eleganteste, wenn Du beide Comboboxen an die selbe Liste bindest. Hier hast Du verschiedene Möglichkeiten.

    Du kannst Dich der

    System.ComponentModel.BindingList(Of T) bedienen. Setz die DataSource beider CMBs auf diese Liste und nimm Änderungen nur an dieser Liste vor. Beide CMBs werden sich entsprechend dem Inhalt dieser Liste füllen oder leeren.

    Ebenfalls kannst Du das nutzen:

    System.Collections.ObjectModel.ObservableCollection(Of T) Hier kannst Du auf die Bindung verzichten. Stattdessen hängst Du Dich in das Changed-Event dieser Collection-Klasse ein. Dort kannst Du dann die Einträge in Beide CMBs schreiben oder eben abhängig von Deinen Bedürfnissen nur in eine. Hier bist Du etwas flexibler.

    Wenn Du nur die Einträge auf "Abruf" kopieren willst, dann musst Du es m. W. nach so machen:

    VB.NET-Quellcode

    1. Me.ComboBox2.Items.AddRange((From o As Object In Me.ComboBox1.Items Select o).ToArray())


    So wie @FloFuchs geschrieben hat, wird es nicht gehen.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Vielen Dank für eure Antworten!
    Ich würde jedoch jetzt gerne noch die Comboboxen 2 und 3 mit Daten aus einer Accessdatenbank füllen.
    Die Spaltenüberschrift für die Daten aus der Datenbank steht in Combobox1.
    Wie kann ich das erreichen?

    Vielen Dank im Voraus
    Ludwig
    Arbeitest Du mit Databinding oder fummelst Du die Abfragen selbst zusammen? Hast Du Dir mal das Datagridview angeguggt?
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    @LudwigM:
    Das geschieht über ein Dataset, wo deine Tabellen drinnen stehen und deine Daten gehalten werden.
    Von wo das Dataset seine Daten bezieht, wird extra bestimmt.
    Hier ist ein Tutorial von ErfinderDesRades, wo du einen ersten Einblick in diese Materie bekommen kannst...
    Hallo VB1963,
    leider kann ich mit deinem vorgeschlagenen Tutorial noch nicht viel anfangen (ich bin noch Anfänger :( ).
    Ich habe noch mal im Internet gesucht und bin auf SQL gestoßen. Kann ich nicht damit alle Einträge der Spalte "Spalte1" (wird ja durch die Combobox1 ausgewählt) auswählen, in einer Variable speichern und in die Combobox2 (und 3) einfügen?
    Wenn ja, wie mach ich das genau? Ich habe viel Code im Internet gefunden, der anscheinend nur in älteren Versionen läuft.

    Nur noch mal als Hinweis damit ihr mein Problem besser verstehen könnt:
    Die Comboboxen 2 und 3 sollen jeweils mit gleichen Einträgen gefüllt werden, da dieses jedoch sehr viele sein können (je nach Auswahl in Combobox1) und sich diese nachträglich ändern können, dachte ich es müsste eine einfachere Methode als

    VB.NET-Quellcode

    1. Combobox2.Items.Add("Eintrag1")

    geben...

    Vielen Dank im Voraus
    Ludwig
    Du könntest das mit schleifen lösen. Hier zwei Beispiele:

    VB.NET-Quellcode

    1. For i As Integer = 0 To 10
    2. ComboBox1.Items.Add("Eintrag" & i.ToString)
    3. Next
    4. For Each item In ComboBox2.Items
    5. ComboBox3.Items.Add(item.ToString)
    6. Next


    mfG

    Derfuhr

    Combobox mit Einträgen aus Accessdatenbank füllen

    Hallo Derfuhr,
    vielen Dank für deine Antwort, für das Kopieren der Einträge von der Combobox2 zu Combobox3 funktioniert dein Code.
    Jedoch habe ich jetzt noch das Problem mit dem Befüllen der Combobox2 aus der Datenbank, wie in den letzten Beitrag beschrieben.

    Ich hoffe jemand kann mir helfen...

    Gruß
    Ludwig
    Hallo Derfuhr,
    bis jetzt habe ich noch keinen funktionierenden Code, aber ich habe Code im Internet gefunden, nur leider funktioneirt er so nicht:

    VB.NET-Quellcode

    1. 'Quelle:http://www.vbarchiv.net/workshop/workshop_12-einfuehrung-in-die-datenbankprogrammierung-mit-vb-teil-3.html
    2. ' Datenbank öffnen
    3. Dim Db As Database
    4. Dim dbFile As String
    5. dbFile = App.Path + "\ADRESS.MDB"
    6. Set Db = Workspaces(0).OpenDatabase(dbFile, False, False)
    7. ' Recordset auf Basis einer SQL-Abfrage erstellen und öffnen
    8. Dim SQL As String
    9. Dim rs As Recordset
    10. SQL = "SELECT Spalte_x FROM Tabelle1" 'Anstelle von Spalte_x soll die Text Eigenschaft von Combobox1 verwendet werden
    11. Set rs = Db.OpenRecordset(SQL)


    Das ist das einzige was ich gefunden habe. Ich weiß nicht, ob man damit wirklich etwas anfangen kann...

    Bis jetzt habe ich jeden Eintrag mit Items.Add() eingefügt.
    Dieses ist jedoch eine sehr umständliche Methode, wenn die Einträge von der Combobox1 abhängen und sich später ändern, dann müsste ich jedesmal den Code anpassen :( .

    Gruß Ludwig

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LudwigM“ ()

    Da du leider noch nicht weisst wie man mit Datenbanken arbeitet kann ich dir an dieser stelle nur ein Paar Links geben von denen ich der meinung bin, das du es mit diesen und etwas arbeit die Grundlagen zum erstellen, editieren und auslesen von Datenbanken erlernen kannst.

    1. [VB 2008] Grundkurs Datanbank Programmierung
    2. Movie Tuts, empfielt Erfinderdesrades immer wieder

    Ich habe hier auch mal Ein Quiz gepostet das auf einer XML-datenbank basiert wäre für den anfang vieleicht auch was.?
    [VB 2010] Multiple Chice Fragen in gemischter Reihenfolge mit anschließender Auswertung mit Microsoft Visual Basic 2010 Express

    mfG

    Derfuhr

    Derfuhr schrieb:

    2. Movie Tuts, empfielt Erfinderdesrades immer wieder

    mehr noch empfehle ich DB-Programmierung ohne Datenbank
    zum einen braucht man Datenbanken seltener als man denkt, zum anderen, ist das KnowHow von DB-Programmierung ohne Datenbank Vorraussetzung für einen effizienten Umgang mit Datenbanken.

    Stürzt man sich direkt in die Datenbänkerei, so kommt nahezu zwangsläufig ineffizienter Irrwitz dabei heraus.
    Ich habe dieses Tut mal nachgeahmt ohne die MySQL.Data.dll zu importieren und siehe da, der selbe Fehler, wie ich es vermutet habe. ErfinderDesRades hat auch einen Link gepostet und da er wirklich ein Fachmann ist, was Datenbankprogrammierung angeht, lege ich dir nahe seinen Rat zu befolgen, er weiss worauf es ankommt.

    mfG

    Derfuhr
    Hallo,
    ich habe den Code von ErfinderdesRades ausprobiert.
    Jedoch habe ich mehrer Fehler, für Importieren von "AddOnDB.DBSampleDataSet" gibt es eine Warnung:

    Der in Imports "AddOnDB.DBSampleDataSet" angegebene Namespace oder Typ enthält keine öffentlichen Member oder kann nicht gefunden werden. Stellen Sie sicher, dass der Namespace oder der Typ definiert ist und mindestens einen öffentlichen Member enthält und dass der importierte Elementname keine weiteren Aliase enthält.

    Leider versteh ich den weiteren Code nicht richtig, also kann bitte nochmal jemand mir erklären, welche Subs ich wo einfügen muss und was ich sonst noch machen, bzw. beachten muss.

    Ich bin euch für jede Hilfe dankbar
    Ludwig