-1

したがって、Visual Studio で行っているコンボボックスに、すべての結果を次のように入力できます。

Dim pnum As New List(Of String) 
        For Each polnumber As InsuredDataSet.Claims_InsuredRow In Me.InsuredDataSet.Claims_Insured
         pnum.Add(polnumber.Policy_Number)     
        Next
        pnum.Reverse()

        Me.Policy_NumberComboBox.DataSource = pnum

素晴らしい。ここで、フォームのInsured_NameTextBoxから入力/選択されたものを取得し、一致する Insured_Name を持つ Policy_Number のみを返すことで、 pnumを制限したいと考えています。これは If ステートメントで実行できると思いますが、私が試したすべて (stringcompare、InsuredName_TextBox = Me.InsuredDataSet.ClaimsInsured など) は、結果を制限しないか、結果を完全に制限するため、何も表示されません。If ステートメントをどこに配置し、何を比較する必要があるか考えていますか?

更新:混乱があると思うので、以下のロードサブ全体を含めます:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'IncidentsDataSet.Claims_Incidents' table. You can move, or remove it, as needed.
        Me.Claims_IncidentsTableAdapter.Fill(Me.IncidentsDataSet.Claims_Incidents)
        'TODO: This line of code loads data into the 'InsuredDataSet.Claims_Insured' table. You can move, or remove it, as needed.
        Me.Claims_InsuredTableAdapter.Fill(Me.InsuredDataSet.Claims_Insured)
        'textbox autocomplete mode
        Dim Iname As New AutoCompleteStringCollection()
        For Each insname As InsuredDataSet.Claims_InsuredRow In Me.InsuredDataSet.Claims_Insured
            Iname.Add(insname.Insured_Name)
        Next

        Me.Insured_NameTextBox.AutoCompleteCustomSource = Iname

        'combobox autocomplete code (now sorting by last included!)
        Dim pnum As New List(Of String)
        For Each polnumber As InsuredDataSet.Claims_InsuredRow In Me.InsuredDataSet.Claims_Insured
            pnum.Add(polnumber.Policy_Number)
        Next
        pnum.Reverse()

        Me.Policy_NumberComboBox.DataSource = pnum

    End Sub
4

2 に答える 2

2

次のようなことを試してください:

Me.Policy_NumberComboBox.DataSource = InsuredDataSet.Claims_Insured.Where(Function(r) r.Insured_Name = Insured_NameTextBox.Text).Select(Function(r) r.Policy_Number).Reverse()

近づいています。質問の更新に基づいて、フォームの読み込み時にこのコードを実行しています。ただし、フォームが読み込まれる時点では、テキスト ボックスは常に空になります。テキストボックスの値が変更された場合、データを再フィルタリングするために何をしますか?

于 2013-09-11T16:00:13.010 に答える
1

これはC#です

Me.InsuredDataSet.Claims_Insured.Where(x => x.Insured_Name == Insured_NameTextBox.Text);
于 2013-09-11T16:01:49.863 に答える