アクセス データベースに THROUGH CODE で接続しようとしています。私はそれを行う視覚的な方法をよく知っていますが、このインスタンスではその方法を使用できないため、最後のビットを大文字にしました。基本的には、Year 列を表示するテーブル Title から単一の列にあるコンボボックスへのデータバインディングを作成したいだけです。これを明確にするために、cboYearsFillBy に YearPublished 列のデータを入力します。私が最大の苦痛であると感じているのは、dbが見つからないときにvbが大騒ぎしないため、それが見つかっているかどうかさえわからないことです。私のコードは以下です
Imports System.Data.OleDb
Public Class frmTitle
' Create untyped dataTables
Dim dtYears As New DataTable
' Declare a variable to represent the DataAdapter
Dim daYears As OleDbDataAdapter
' Create BindingSource objects for Employee & Dept tables:
Dim WithEvents bsYears As New BindingSource
Private Sub frmTitle_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim connStr As String = "Provider=Microsoft.ace.OLEDB.12.0;Data Source=D:\VisualStudioProjects\Biblio.accdb"
MessageBox.Show(connStr)
Dim titleSQLStr As String = "SELECT * FROM Title"
daYears = New OleDbDataAdapter(titleSQLStr, connStr)
Dim commandBuilder As New OleDb.OleDbCommandBuilder(daYears)
daYears.Fill(dtYears)
dtYears.PrimaryKey = New DataColumn() {dtYears.Columns("YearPublished")}
bsYears.DataSource = dtYears
cboYearsFillBy.DataSource = bsYears
cboYearsFillBy.DisplayMember = "YearPublished"
cboYearsFillBy.ValueMember = "YearPublished"
End Sub
End Class
次の出力が得られます