vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Datagridview Comboboxen über Filter miteinander verknüpfen 
Autor: Vaubehnet
Datum: 13.09.19 11:10

Hallo,

Thema:
- Access-Datenbank mit einigen projektbezogenen statistischen Daten (<1000 Werte)
- Datagridview mit Bindingsource
- Fragestellung: von einander abhängige Comboboxen in der Datagridview

Ich habe eine Datagridview, die über eine Accessdatenbank per Bindingsource eine Wertetabelle einbindet. Zwei Hilfstabellen sollen helfen, die Wertetabelle strukturiert zu füllen.
Diese Tabellen sind voneinander abhängig und hier habe ich ein Problem.

Zunächst, damit es vielleicht deutlicher wird, hier die (vereinfachte) Tabellenstruktur und ein paar Beispieldaten (exemplarisch).

Die (vereinfachte) Datenstruktur sieht also so aus:

Hilfstabelle 1: tb_Merkmal
Felder:
1. m_ID (Autowert, Schlüsselfeld)
2. m_Name (Text, Name des Merkmals)

Hilfstabelle 2: tb_auspraegung
Felder:
1. a_ID (Autowert, Schlüsselfeld)
2. a_name (Text, Name der Ausprägung)
3. m_ID (Fremdschlüssel aus tb_merkmal)

Beispieldaten 1: z.B. Ampel und Ampelfarben
tb_merkmal: Ampel m_ID=1, m_Name="Ampel"
tb_auspraegung: Rot, Gelb, Grün (für Rot also z.B. a_ID=1, a_name="Rot") etc.

Beispieldaten 2: z.B. Geschlecht
tb_merkmal: Geschlecht
tb_auspraegung: weiblich, männlich, divers


Wertetabelle: tb_wert (Die Wertetabelle gehört zu einer übergeordneten Tabelle, aber das führt jetzt zu weit)
Felder:
w_ID (Autowert, Schlüsselfeld)
m_ID (Fremdschlüssel aus Hilfstabelle tb_merkmal)
a_ID (Fremdschlüssel aus Hilfstabelle tb_auspraegung)
m_Wert (double)

In die Wertetabelle soll nun zu dem jeweils beobachteten Untersuchungsobjekt das Merkmal eingetragen werden und von diesem speziellen Merkmal die Ausprägung.

Meine Frage:
Ich bekomme es hin, in der Datagridview eine Combobox anzulegen, dieser eine eigene Bindingsource zuzuweisen und hier die Werte entweder aus der Tabelle tb_merkmal oder der Tabelle tb_auspraegung einzupflegen.

Was ich nicht hinbekomme:
Wenn ich als Merkmal in der ersten Combobox "Ampel" auswähle, soll die zweite Combobox nur die Werte "rot, gelb, grün" anzeigen.
Wähle ich aber in einer neuen Zeile z.B. "Geschlecht", dann soll die zweite Combobox nur "weiblich, männlich, divers" anbieten.

Ich vermute, die Lösung liegt irgendwo in dem Ereignis:
cmbMerkmal_SelectedIndexChanged
Und dann muss die Bindingsource für die zweite Combobox angestoßen werden

'Pseudocode für Aktualisierung der zweiten Combobox
xyzBindingSource.Filter = String.Empty
xyzBindingSource.Filter = "[m_ID] = " & Irgendwie die ID der gerade _
  aktualisierten Merkmal-Combobox...
Die zweite Combox aktualisiert sich aber nicht.
Irgendetwas habe ich also übersehen.

Außerdem: wenn ich das Merkmal bereits ausgewählt habe und direkt in die Ausprägung gehe, muss vor der Anzeige der Combobox ja eine Aktualisierung der jetzt zur Auswahl stehenden Werte erfolgen.

Ich bin für jede Hilfe dankbar,

vaubehnet

---
Verwendete Programmversionen:
Windows 7 64 bit sowie Windows 10 Prof.
Visual Studio 13 Professional
Microsoft Prof. 2010 (= Version 14)

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datagridview Comboboxen über Filter miteinander verknüpfen50Vaubehnet13.09.19 11:10
Re: Datagridview Comboboxen über Filter miteinander verknüpf...19effeff16.09.19 16:52

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2019 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel