Hallo Peter,
Dass ich eine weitere Liste erstellen müsse, war der entscheidende Hinweis!
Ich hatte in meinen ersten Versuchen beide Comboboxen an die gleiche Sicht
gebunden. Nun habe eine eine weitere Instanz der DataTable „DialogPartner“
und über die Bindingsource eine zweite Sicht erstellt und daran die zweite
ComboBox gebunden. Nun funktionierts auch mit dem Filter. Ich hoffe, ich
sehe die Zusammenhänge halbwegs richtig.
Herzlichen Dank und lieben Gruß
Josef Morlo
Folgender Code bringt das gewünschte Ergebnis:
[...]
mDSet = New DataSet("DialogeDialogpartner")
mAdapterDialoge.Fill(mDSet, "Dialoge")
mAdapterDialogPartner.Fill(mDSet, "Dialogpartner")
*mAdapterDialogPartner.Fill(mDSet, "Dialogpartner2")
'Beziehung zu Redner1 über Teilnehmer
mRel1 = mDSet.Relations.Add("RelDialogePartner1", _
mDSet.Tables("DialogPartner").Columns("DialogPartnerNr"), _
mDSet.Tables("Dialoge").Columns("DialogPartner1"))
mRel2 = mDSet.Relations.Add("RelDialogePartner2", _
*mDSet.Tables("DialogPartner2").Columns("TeilnehmerNr"), _
mDSet.Tables("Dialoge").Columns("DialogPartner2"))
mBSource1.DataSource = mDSet.Tables(0)
With DataGridView1
.AutoGenerateColumns = True
.DataSource = mBSource1
End With
mBSource2.DataSource = mDSet.Tables(1)
CboPartner1.DataSource = mBSource2
CboPartner1.ValueMember = "DialogPartnerNr"
CboPartner1.DisplayMember = "Nachname"
mBSource3.DataSource = mDSet.Tables(2)
CboPartner2.DataSource = mBSource3
CboPartner2.ValueMember = " DialogPartnerNr"
CboPartner2.DisplayMember = "Nachname"
CboPartner1.DataBindings.Add( _
"SelectedValue", mBSource1, "Dialogpartner1")
CboPartner2.DataBindings.Add( _
"SelectedValue", mBSource1, "Dialogpartner2")
End Sub
Private Sub CboPartner1_SelectionChangeCommitted( _
ByVal sender As Object, ByVal e As System.EventArgs) _
Handles ComboBox1.SelectionChangeCommitted
Dim sfilter As String = _
"DialogPartnerNr <> " & CboPartner1.SelectedValue.ToString
mBSource3.Filter = sfilter
End Sub