0

VSTOを使用するExcel2007で、以下の列の例ListObjectを含むSQLテーブルを使用している場合:DataSet

[Year],[Month],[Unit],[Site]

同じものからどのようcomboboxに使用することができますか?データソースとして、 ?で選択した年に依存します。SELECT DISTINCT [Year]DataSetListObjectcombobox

簡単そうに見えますが、VSTOとデータセット、バインディングソース、テーブルアダプターなどを使用する正しい方法に精通していません...

ヘルプや役立つ記事があれば素晴らしいと思います。

ありがとう

4

1 に答える 1

0

DataSetデザイナーと以下の手順を使用して、これを理解しました。

  1. DataTable私の場合はと呼ばれる私の右クリックUnits

  2. 選択Add Query

  3. 選択Use SQL Statements

  4. 選択SELECT which returns rows

  5. このクエリをテキストボックスに追加しましたSELECT DISTINCT [Year] FROM [Units] ORDER BY DESC

  6. Fill a DataTableオプションのチェックを外し、Return a DataTable名前を次のように変更しますGetDataByDistinctYear

  7. 上記のプロセスを再度実行しますが、このSQLステートメントを使用しますSELECT [Year],[Month],[Unit],[Site] FROM [Units] WHERE [Year] = @Year

  8. 次に、fillデータテーブルオプションとreturnデータテーブルオプションの両方の名前をとに変更しますFillByYearGetDataByYear

  9. これにより、新しいクエリが追加されましたUnitsTableAdapter

  10. 次に、ワークシートのコード.vbファイルに、次のコードを追加しました。

Private Sub Sheet1_Startup() Handles Me.Startup
...
YearComboBox.DataSource = UnitsTableAdapter.GetDataByDistinctYear()

End Sub

Private Sub YearComboBox_SelectedValueChanged(sender As Object, e As System.EventArgs) 
Handles YearComboBox.SelectedValueChanged

Me.UnitsTableAdapter.FillDataByYear(Me.UnitsDataSet.Units, YearComboBox.SelectedValue)

End Sub

少なくとも誰かがこれが役に立つと思うことを願っています。

ありがとう

于 2013-03-01T01:46:41.347 に答える