概要説明
競技会の成績結果を記録するような場合、選手の氏名は変わるが、競技種目やクラスなどは同じものが連続して入る。 毎回変わるフィールドのみを空白にして入力待ちにし、他のフィールドは前の入力データを残すと効率良い入力ができる。 次のフォームは、氏名は変わるが種目とクラスと順位(一部変更あるが)は同じデータが連続する例である。
作成手順
- 基となるテーブルは[T_成績]とし、使用するフィールド名は[氏名][大会名称][種目] [クラス] [順位]です。
- 非連結のフォームを作成します。名前は[F_成績入力]です。
- フォーム上に5つのテキストボックスを作成し、名前をTxt_氏名①、Txt_大会名称②、Txt_種目③、Txt_クラス④ 、txt_順位 とします。
- 2つのコマンドボタンを作成し、名前をCmd_登録⑤、Cmd_閉じる⑥ とします。
- 登録ボタンに下のプロシージャを作成します。
Private Sub txt_登録_Click()
'ADOレコードセットを開く
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Set cn = CurrentProject.Connection
' テーブル「T_成績」を開く
rs.Open "T_成績", cn, adOpenKeyset, adLockOptimistic
' 新しいレコードに移動
rs.AddNew
' テキストボックスのデータを入れる
rs!氏名 = Me!txt_氏名
rs!大会名称 = Me!txt_大会名称
rs!種目 = Me!txt_種目
rs!クラス = Me!txt_クラス
rs!順位 = Me!txt_順位
' 氏名のテキストボックスを空にする
Me!txt_氏名 = Null
' 新しいレコードに移動
rs.AddNew
' レコードセットを閉じる
Set rs = Nothing
Set cn = Nothing
End Sub
使用例
- レコードを入力したところです。
- 登録ボタンをクリックした後、氏名のみが空白となり他は前の入力が保持されている。次は新しい名前データを入れ、
変更するコントロールの書き換えをするだけで済みます。
- テーブルを開くとデータが保存されています。「番号」フィールドはオートナンバーです。
(この項終わり)