*

Access VBA データベース作成3 新規レコード取得 登録フォームの作成1

公開日: : 最終更新日:2014/05/07 データベース作成

データベース作成3 登録フォームの作成1

実践データベース作成の第3回目は登録フォームの作成を行います。
作成したテーブル「T_社員マスタ2013」へ新規データを追加するプログラムがメインになります。
・テキストボックスやコンボボックスを設置し新規社員データの入力を行う。
・登録するコマンドボタンを設置しテーブルへ新規データを追加する。
上記のような流れになります。

まずはフォームを作成してみます。

スポンサーリンク

フォームの作成

sakusei12
デザインは気にしないで下さい。。。
フォームの構成は・・・
社員コード・・・テキストボックス
名前・・・テキストボックス
性別・・・コンボボックス
所属部署・・・コンボボックス
入社日・・・テキストボックス
登録ボタン・・・コマンドボタン
以上になります。
また、各テキストボックスとコンボボックスは「非連結」にしておきます。

では、実際にVBAをどのように組み込んでいくのか説明します。

フォームイベント

フォームのイベントは「読み込み時」になります。

sakusei13
フォームの「読み込み時」には以下のプログラムを実行します。
1.性別マスタを使用して「性別コンボボックス」の作成
2.所属部署マスタを使用して「所属部署コンボボックス」の作成
3.社員マスタのレコード数を読み込み、新規の社員コードを取得
実際のプログラムは以下のようになります。

プログラムの例

Private Sub Form_Load()

Dim CN As ADODB.Connection
Dim RS As ADODB.Recordset
Dim RS1 As ADODB.Recordset
Dim RS2 As ADODB.Recordset
Dim ID As String

Set CN = CurrentProject.Connection

‘性別コンボボックスの作成
Set RS = New ADODB.Recordset

Me.新規性別コード.ColumnCount = 2
Me.新規性別コード.ColumnWidths = “2.0cm;1.0cm”
Me.新規性別コード.RowSource = “コード;性別”
Me.新規性別コード.RowSourceType = “値リスト”

RS.Open “T_性別マスタ”, CN, adOpenStatic, adLockOptimistic

Do Until RS.EOF

Me.新規性別コード.RowSource = Me.新規性別コード.RowSource & “;” & RS!性別コード & “;” & RS!性別

RS.MoveNext
Loop

RS.Close: Set RS = Nothing

‘所属部署コンボボックスの作成
Set RS1 = New ADODB.Recordset

Me.新規所属部署コード.ColumnCount = 2
Me.新規所属部署コード.ColumnWidths = “2.0cm;1.0cm”
Me.新規所属部署コード.RowSource = “コード;部署”
Me.新規所属部署コード.RowSourceType = “値リスト”

RS1.Open “T_所属部署マスタ”, CN, adOpenStatic, adLockOptimistic

Do Until RS1.EOF

Me.新規所属部署コード.RowSource = Me.新規所属部署コード.RowSource & “;” & RS1!所属部署コード & “;” & RS1!所属部署名

RS1.MoveNext
Loop

RS1.Close: Set RS1 = Nothing

‘新規社員コードの取得
Set RS2 = New ADODB.Recordset
RS2.Open “T_社員マスタ2013”, CN, adOpenStatic, adLockOptimistic

If RS2.RecordCount > 0 Then
ID = Format(RS2.RecordCount + 1, “000”)
Me.新規社員コード = ID
Else
Me.新規社員コード = “001”
End If

RS2.Close: Set RS2 = Nothing
CN.Close: Set CN = Nothing

End Sub

プログラムの説明

性別コンボボックス及び所属部署コンボボックスの作成

(1)「Me.新規性別コード」を設定。
(2)ADOを使用して「T_性別マスタ」を開く。
(3)Do Loop処理を使用して「Me.新規性別コード」にデータを追加
(4)「Me.新規所属部署コード」も同様に作成します。
ADOの使用方法はこちらを参照して下さい。
コンボボックスの詳しい作成方法はこちらを参照して下さい。

新規社員コードの取得

新規社員コードの取得方法は、現社員数をカウントし、その値に+1を行うように作成しています。
(1)ADOを使用して「T_社員マスタ2013」を開く。
(2)【RS2.RecordCount】「T_社員マスタ2013」のレコード数をカウント
(3)【ID = Format(RS2.RecordCount + 1, “000”)】カウントしたレコード数に+1を行い、更にFormat関数を使用して値を「000」形式に変換(例:1→001)した後、変数「ID」に格納。変数「ID」はプログラムの冒頭で文字列(String)の設定がしてあります。
(4)【Me.新規社員コード = ID】「ID」の値を「Me.新規社員コード」に表示。
(社員のレコード数が「ゼロ」の場合は「001」となります)

いかかでしょうか?
これでフォームの「読み込み時イベント」は完了です。
次回は新規登録のプログラムを説明していきます。

スポンサーリンク

ad-pc

ad-pc

関連記事

sakusei18

Access VBA データベース作成6 SQLでLike演算子 検索フォームの作成2

データベース作成6 検索フォームの作成2 実践データベース作成の第6回目は検索フォームの作成Par

記事を読む

sakusei27

Access VBA データベース作成10 フォームを開く メインフォームの作成

データベース作成10 メインフォームの作成 実践データベース作成の第10回目はメインフォームの作成

記事を読む

sakusei02

Access VBA データベース作成1 ADO参照設定

データベース作成1 準備 データベース作成の実践編として数回に渡り、AccessVBAを使用したデ

記事を読む

sakusei20

Access VBA データベース作成7 リストボックスの値取得 検索フォームの作成3

データベース作成7 検索フォームの作成3 実践データベース作成の第7回目は検索フォームの作成Par

記事を読む

sakusei15

Access VBA データベース作成4 新規レコード追加 登録フォームの作成2

データベース作成4 登録フォームの作成2 実践データベース作成の第4回目は登録フォームの作成Par

記事を読む

sakusei24

Access VBA データベース作成9 データの更新 編集フォームの作成2

データベース作成9 編集フォームの作成2 実践データベース作成の第9回目は編集フォームの作成Par

記事を読む

sakusei22

Access VBA データベース作成8 コンボボックスの選択データを表示 編集フォームの作成1

データベース作成8 編集フォームの作成1 実践データベース作成の第8回目は編集フォームの作成Par

記事を読む

sakusei17

Access VBA データベース作成5 コンボボックスの作成 検索フォームの作成1

データベース作成5 検索フォームの作成1 実践データベース作成の第5回目は検索フォームの作成Par

記事を読む

sakusei11

Access VBA データベース作成2 テーブルの作成

データベース作成2 テーブルの作成 実践データベース作成の第2回目はテーブルの作成を行います。

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

転職01
初心者がAccess VBAの仕事に就く為には

初心者がAccess VBAを使った仕事に就く 私はSEやITエンジ

sound01
Access VBA 音を鳴らす PlaySound

音を鳴らす PlaySound Access上で効果音を鳴らすプログ

pass01
Access VBA フォームをパスワードで制限

フォームをパスワードで制限 Accessで作成したデータベース使用時

prg01
Access VBA 処理の進行状況を表示するプログレスバー(ProgressBar)

処理の進行状況を表示するプログレスバー Accessで処理に時間のか

excel03
Access VBA AccessのデータをExcel(エクセル)へ変換

AccessのデータをExcel(エクセル)へ変換 Accessで使

→もっと見る

PAGE TOP ↑