daten aus combobox auslesen

marcel_t

Grünschnabel
hallo,

habe in einem fenster ne combobox in der alle daten aus einer spalte aus einer access datenbank alphabetisch angezeigt werden. nun soll man auf die datensaätze zugreifen können. wie kann ich das machen? beim anklicken die einzelne spalte auslesen lassen? :confused:
die datenbank ist ms access und benutze 'ole db'.. die sprache ist c++ und die IDE Visual Studio 2005 Express..

gruß
 
Zuletzt bearbeitet:

mage

Erfahrenes Mitglied
1.) Halte dich bitte an die Netiquette.

Du kannst bei der Combobox das Ereignis SelectedIndexChanged() behandeln.
Zugriff auf die Ereignisse bekommt du zum Beispiel, in dem du auf deine Combobox im Formulardesigner klickst und im Eigenschaftenfenster auf Ereignisse umschaltest. Das ist das Symbol mit dem Blitz.
Dort kannst du das Ereignis auswählen VS sollte dann in die Codeansicht springen und die den Rumpf der Behandlungsfunktion generieren.

Dort kannst du dann per ComboBoxName1.SelectedItem erhälst du das Listitem.
Wenn du Datenbindung verwendest ist das Ereignis SelectedValueChanged und die Eigenschaft ComboBoxName1.SelectedValue besser.
 

marcel_t

Grünschnabel
Dort kannst du dann per ComboBoxName1.SelectedItem erhälst du das Listitem.

Kann damit leider nichts anfangen?! hab jetzt das Ereignis SelectedValueChanged verwendet du die Funktion generieren lassen. Nur wie bekomme ich jetzt den ausgewählten Eintrag? Der Methodenrumps ist leer! Bin ziemlich neu in dem Thema..

Nochmal kurz vielleicht zur Erklärung. Habe eine Access Tabelle.. Zu jeder Zeile gehören 5 Spalten, Spalte 1 ist der Name und die anderen 4 Spalten enthalten Informationen darüber. So füllt sich die Tabelle mit vielen Namen in jeder Zeile und seinen Informationen in den zugehörigen Spalte.
In der Combobox steht immer nur der Name, also immer nur die Spalte 1 jeder Zeile.
Klickt man nun auf einen dieser Namen, soll in einer TextArea die komplette Zeile ausgegeben werden (also der Name + Informationen).
Wie komme ich an die komplette Zeile wenn man in der Combobox den Namen anklickt?
Hoffe konnte es halbwegs erklären, die Methode ist soweit generiert nur wie gehts weiter?

1.) Halte dich bitte an die Netiquette.

Habs später über editieren versucht nur lies sich der Titel nicht mehr ändern, sorry..
 

Norbert Eder

Erfahrenes Mitglied
Das hängt davon ab, wie du deine Daten ausliest und an die ComboBox hängst. Hierzu gibt es mehrere Wege:

1. Du hängst die Daten via DataSet an die ComboBox, dann hängst du die ID und den anzuzeigenden Wert an die Box. Das DataSet verwendest du hier global, damit du mittles ID nachschlafen kannst und somit alle Daten bekommst.

2. Du generierst dir aus deinem DataSet oder was auch immer du hast einzelne Objekte. Darin überschreibst du die ToString() Methode, damit diese den Wert zurückgibt, der in der ComboBox angezeigt werden soll und hängst die einzelnen Objekte an die ComboBox. Damit hast du ebenfalls immer alle Werte.

3. Du hängst nur ID und anzuzeigenden Wert an die ComboBox und liest bei jeder neuen Auswahl die Daten frisch aus der Datenbank.
 

blotte

Mitglied
Hallo ...!
Ich habe fast identisches Problem, wie marcel_t ... Ich habe es auch schon hier gepostet.

Vll kann mir jemand dabei hefen...ich arbeite mit Dataset.

Vielen Dank im Voraus
Caro
 

mage

Erfahrenes Mitglied
Die Combobox muss ungefähr so gefüllt werden:
Visual Basic:
    With comboboxName
        .DataSource = meineDataSource
        .ValueMember = "Spaltenname_Schlüssel"
        .DisplayMember = "Spaltenname_Anzeige"
    End With
 

mage

Erfahrenes Mitglied
Nicht das ich jetzt wüsste.
Die Eigenschaft heisst ja Value und nicht Values.

Aber wenn du den Schlüssel für den Datensatz hast, kannst du ja die gesamte Zeile identifzieren.
 

blotte

Mitglied
Ok...!
Wenn ich also den ValueMember auf meinen Primärschlüssel anordne...also auf die ID
wie kann ich dann eine andere Spalte auswählen?

Um es genauer zu sagen , habe ich im moment mit folgender Anweisung die von mir SelectedValue ausgelesen und in eine TextBox geschrieben.
Code:
 if ( comboBox1->SelectedValue != nullptr ) {
				    
         textBox1->Text = comboBox1->SelectedValue->ToString();
}
Kann ich zusäzlich auch noch andere Spalten in einer anderen TextBox auslesen/schreien?
Ich möchte nämlich in der einen Box die "Zutaten" haben und in einer anderen Box das "Rezept".

Oder habe ich das fasch verstanden und man kann nicht auf die anderen Spalten zugreifen ?! (benutze-dataSet)

MfG Caro
 
Zuletzt bearbeitet: