データベース(MDBファイル)関連:DataGridViewの特定フィールドのみ修正可能にする
VB2008でMDBファイルを表示させた表形式フォームの特定フィールドのみ修正可能にする実行例サンプルです。データベース(MDBファイル)関連へDataGridViewを追加なしで、特定の列のみデータを入力できるようにしたい場合の方法です。 特定の列を読み取り専用にするには、 DataGridView1.Columns(列番号).ReadOnly = True とします。 そして、追加行を消すには、DataGridView1.AllowUserToAddRows = False とします。 特定の列を編集するには、編集したいセルに移動し、「クリック」又は「ダブルクリック」又は「F2キーを押す」を実行します。 これで入力可能な状態になります。 Field3のみ編集可能にしたフォーム Field3以外入力できません。 ■ 実行コード 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実践入門 |