2 つのテーブルを持つデータベースがあります。1 つのテーブルには従業員 (EmployeeID、First、Last など) がリストされ、もう 1 つのテーブルには従業員ごとのトレーニング (EmployeeID、TrainingID など) がリストされます。employeeID は 2 つのテーブル間で共通です。現在、従業員テーブルにデータバインドされている Windows フォームにリストボックスがあります。エンド ユーザーはリスト ボックスで従業員を選択し、その従業員をトレーニング テーブルに保存します。
私がやりたいことは、従業員リストボックスですでにトレーニングを受けた従業員を選択することです。つまり、50 人の従業員がいて、ある場所でトレーニングを行い、10 人の名前のリストが返された場合、それらの名前はトレーニング テーブルに格納されます。次のトレーニング セット (たとえば 5 人の従業員) が提出されると、以前に入力された 10 人がリスト ボックスで既に選択されています (または、名前が太字、イタリック体、またはリスト ボックスに対して目立つようになっています)。次に、重複した値を書き込んでいないことを確認するために保存をチェックする必要があることを知っています。現在トレーニング中の従業員をマークできるようにしたいだけです。
ここで C# の回答を含む質問を見つけましたが、VB.NET で動作させることができませんでした。明確にするために、リストボックスは 1 つのテーブルを使用してデータバインドされ、項目は 2 番目のテーブルを使用して選択されます。
編集:というデータベースに既に入力されている従業員のリストを取得する tableadapter がありますDFV_EmployeesByWeeklyTraining
。行は、次によって返されますSELECT WeeklyTrainingID, TopicDescription, EmployeeID, FirstName, LastName FROM dbo.DFV_EmployeesByWeeklyTraining(@WeeklyTrainingID)
。これは私が検索する必要がある情報です。
私のリストボックスDFV_EmployeesByDate
は、EmployeeID と Fullname を返すデータを取得します。DisplayMember を FullName に、EmployeeID を ValueMember に設定しました。各リストボックス アイテムをループして EmployeeID を取得できます。次に、その EmployeeID を他のテーブル アダプタと照合する必要があります。