このエントリーをはてなブックマークに追加

Accessサブフォームに入力できる行数を指定する。

こちらは、サブフォームを備えたデータ入力のフォームサンプルです。メインフォームのレコード1行に対する、サブフォームに入力できる行数を制御していきます。例えば、このフォームで入力したデータから、帳票等にプリントするときに、印字できる行数に合わせて、入力できる行数を決めるときなどです。

フォーム

では、サブフォームのほうにコードを記述していきます。サブフォームをデザインビューで開きます。サブフォームの「レコード移動時」イベントにコードを書きます。

Private Sub Form_Current()
Me.AllowAdditions = Me.Recordset.RecordCount < 3
End Sub

これで、サブフォームのレコードの数が3行未満のときは、次の新しいレコードに進むという意味になります。つまり、レコード数が2行のときは、次の3行目に進み、レコード数が3行になると、次のレコードには進めなくなります。「TAB」キーでカーソルを進めても、3行目の中をカーソルがぐるぐるとまわるだけになります。

では、3行レコードを入力したあとは、これ以上入力できないことを知らせる、メッセージボックスを出すようにします。まず、サブフォームのVBEの冒頭箇所に、レコード数を格納する変数を宣言します。

Option Compare Database
Option Explicit
Dim gyo As Integer

3行目の、「gyo」がその変数名です。そして、変数に入れるものは、「レコードの数」なので、データ型は、「整数」(Integer)型とします。
そして、先程書いたコードの続きに、

gyo = Me.Recordset.RecordCount

の1行を追加します。

Private Sub Form_Current()
Me.AllowAdditions = Me.Recordset.RecordCount < 5
gyo = Me.Recordset.RecordCount
End Sub

これで、レコードが移動したときに、レコード数を変数「gyo」に格納することができます。

そして、カーソルが、テキストボックス「tx_金額」を離れたときに、レコード数が3行に達していたら、メッセージを出すようにします。

Private Sub txt金額_LostFocus()
If gyo >= 3 Then
    MsgBox "データ入力は3行までです。", vbOKOnly
End If
End Sub

フォーム

このエントリーをはてなブックマークに追加

コメントを残す

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

コメントフィード

トラックバックURL : http://gyoumuka.work/wp-trackback.php?p=2301

PAGE TOPへ戻る