社員マスター更新画面クラスの実装
社員マスターテーブルの1レコードを更新(Update)する画面プログラムを作成します。
サンプルプログラム
社員マスターの1レコードを更新する画面クラスの仕様
- 社員コードを引数に指定して、社員データ更新クラスClsUpdateShainのインスタンスを生成(コンストラクタで、社員テーブルから引数にした社員コードのレコードを取得)
- ClsUpdateShainの社員氏名プロパティと社員カナプロパティから、社員氏名と社員カナを取得して画面に表示
- 変更した社員氏名と社員カナを、社員氏名プロパティと社員カナプロパティで、ClsUpdateShainの内部変数にセット
- ClsUpdateShainを引数に指定して、UpdateKeyRecordメソッドを呼び出して、社員テーブルのレコードを更新
Key | 列名 | データ型 | NULLを許容 |
---|---|---|---|
● | 社員コード | nchar(5) | しない |
社員氏名 | nvarchar(20) | しない | |
社員カナ | nvarchar(40) | しない | |
部署コード | nchar(4) | しない | |
更新日時 | datetime | しない |
ソースリストの枠内をクリックすると全選択できます。
Option Strict On '////////// 社員テーブル更新画面クラス ////////// Public Class FormUpdate Private shain As ClsUpdateShain Private busho As ClsSelectBusho '----------<< フォームロード処理 >>---------- Private Sub FormUpdate_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Mybase.Load ' 画面初期設定 ClearForm() End Sub '----------<< 検索ボタン押下処理 >>---------- Private Sub BtnRetrieval_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnRetrieval.Click Try ' 社員データ更新クラスのインスタンス生成 shain = New ClsUpdateShain(TxtShainCode.Text) TxtShainShimei.Text = shain.ShainShimei TxtShainKana.Text = shain.ShainKana ' 部署データ選択クラスのインスタンス生成 busho = New ClsSelectBusho(shain.BushoCode) ' 取得した部署名にインデックスを設定 CboBushoMei.SelectedIndex _ = CboBushoMei.FindString(busho.BushoMei) ' 社員コード・検索ボタン入力不可 TxtShainCode.Enabled = False BtnRetrieval.Enabled = False TxtShainShimei.Enabled = True TxtShainKana.Enabled = True CboBushoMei.Enabled = True BtnRetrieval.Enabled = False BtnUpdate.Enabled = True ' 社員氏名にフォーカス TxtShainShimei.Focus() Catch ex As myShainCodeException ' 社員コードエラー MessageBox.Show(ex.Message, "社員コードエラー") TxtShainCode.Focus() Catch ex As myDBIOException ' DBアクセスクラス独自例外発生時 MessageBox.Show(ex.Message, "DBIO例外発生") Catch ex As Exception ' その他例外発生時 MessageBox.Show(ex.ToString, "例外発生") End Try End Sub '----------<< 更新ボタン押下処理 >>---------- Private Sub BtnUpdate_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnUpdate.Click Try ' 社員テーブルのデータ行生成 Dim row As DataRow row = shain.CreateDataRow() ' 画面データのセット row("社員コード") = TxtShainCode.Text row("社員氏名") = TxtShainShimei.Text row("社員カナ") = TxtShainKana.Text row("部署コード") = CStr(CboBushoMei.SelectedValue) ' 社員テーブルの更新処理 shain.UpdateKeyRecord(row) ' 画面初期設定 ClearForm() ' 正常終了 MessageBox.Show("正常に更新されました", "更新処理") Catch ex As myShainShimeiException ' 社員氏名エラー MessageBox.Show(ex.Message, "社員氏名エラー") TxtShainShimei.Focus() Catch ex As myShainKanaException ' 社員カナエラー MessageBox.Show(ex.Message, "社員カナエラー") TxtShainKana.Focus() Catch ex As myBushoCodeException ' 部署コードエラー MessageBox.Show(ex.Message, "部署コードエラー") CboBushoMei.Focus() Catch ex As myDBIOException ' DBアクセスクラス独自例外発生時 MessageBox.Show(ex.Message, "DBアクセスエラー") Catch ex As Exception ' その他例外発生時 MessageBox.Show(ex.ToString, "例外発生") End Try End Sub '----------<< クリアボタン押下処理 >>---------- Private Sub BtnClear_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnClear.Click ' 画面初期設定 ClearForm() ' 社員コードにフォーカス TxtShainCode.Focus() End Sub '----------<< 画面初期設定 >>---------- Private Sub ClearForm() TxtShainCode.Text = Nothing TxtShainShimei.Text = Nothing TxtShainKana.Text = Nothing ' 部署テーブルの全レコード取得 Me.busho = New ClsSelectbusho() ' コンボボックスに部署名を表示できるようにする CboBushoMei.DisplayMember = "部署名" ' 部署コードをSelectdValueで取得できるようにする CboBushoMei.ValueMember = "部署コード" ' コンボボックスにデータを連結する CboBushoMei.DataSource = busho.BushoData ' 社員コード・検索ボタン入力不可 TxtShainCode.Enabled = True BtnRetrieval.Enabled = True TxtShainShimei.Enabled = False TxtShainKana.Enabled = False CboBushoMei.Enabled = False BtnRetrieval.Enabled = True BtnUpdate.Enabled = False End Sub End Class