DB にバインドされていてうまく機能するコンボボックスがあります。
ただし、コンボボックスがバインドされているテーブルにユーザーが値を追加すると、コンボボックスは古い値を保持し、現在の項目をテーブルに追加します。
この場合、テーブルはもともと 1 つのレコード ("2012") しか保持していませんでした。ユーザーが 2013 を追加したため、テーブルには 2 つのレコード ("2012" と "2013") が表示されますが、コンボボックスには 3 つのレコード ("2012"、"2012"、および "2013") が表示されます。アプリを終了して再起動するまで、テーブル内の 2 つのレコード (「2012」と「2013」) のみが正しく反映されます。
cboYear.Datasource = Nothing
、を試しましたがcboYear.items.clear
、cboYear.DataBindings.clear
何も機能しません。
コードは次のとおりです。
Try
Dim asql As String = ("SELECT * FROM YearsAvailable ORDER BY CurrentYear")
Dim da As New OleDbDataAdapter(asql, con)
da.Fill(ds)
cboYear.ValueMember = "CurrentYear"
cboYear.DataSource = ds.Tables(0)
cboYear.SelectedIndex = 0
CurrentYear = cboYear.Text
Me.Text = "MSD of Perry Township Compensation Model: " & CurrentYear
Catch ex As Exception
MsgBox("ERROR filling the YEAR control: " & ex.Message.ToString)
End Try