データベース(MDBファイル)関連:DataGridViewの特定フィールドのみ修正可能にする

VB2008でMDBファイルを表示させた表形式フォームの特定フィールドのみ修正可能にする実行例サンプルです。

データベース(MDBファイル)関連へ



DataGridViewを追加なしで、特定の列のみデータを入力できるようにしたい場合の方法です。

特定の列を読み取り専用にするには、 DataGridView1.Columns(列番号).ReadOnly = True とします。
そして、追加行を消すには、DataGridView1.AllowUserToAddRows = False とします。

特定の列を編集するには、編集したいセルに移動し、「クリック」又は「ダブルクリック」又は「F2キーを押す」を実行します。
これで入力可能な状態になります。

Field3のみ編集可能にしたフォーム
Field3以外入力できません。
DataGridViewを設置し編集可能にしたフォーム

■ 実行コード

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim CnString As String
Dim UserID As String = "Admin"
Dim Password As String = ""
Dim SQL As String
Dim sfina As String = "C:\sample1.mdb"
Dim DaAdap As OleDb.OleDbDataAdapter
Dim Tbl As New DataTable()
Dim Bds As New BindingSource
Dim i As Integer

CnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sfina & ";"
CnString = CnString & "User ID=" & UserID & ";"
CnString = CnString & "Jet OLEDB:Database Password=" & Password

'全フィールドの表示
SQL = "SELECT * FROM table1"

'データアダプターの作成
DaAdap = New System.Data.OleDb.OleDbDataAdapter(SQL, CnString)

'データを読む
DaAdap.Fill(Tbl)

'データグリッドに表示
Bds.DataSource = Tbl
DataGridView1.DataSource = Bds

'読み取り専用にしない
DataGridView1.ReadOnly = False
'追加行を消す
DataGridView1.AllowUserToAddRows = False

'最後のフィールドのみ入力可能にする
For i = 0 To DataGridView1.ColumnCount - 2
DataGridView1.Columns(i).ReadOnly = True
Next
End Sub
End Class


Visual Basic 2008 Express Edition実践入門