繰り返す同じデータを効率よく入力するフォーム

TIPSメインへ戻る

概要説明

競技会の成績結果を記録するような場合、選手の氏名は変わるが、競技種目やクラスなどは同じものが連続して入る。 毎回変わるフィールドのみを空白にして入力待ちにし、他のフィールドは前の入力データを残すと効率良い入力ができる。 次のフォームは、氏名は変わるが種目とクラスと順位(一部変更あるが)は同じデータが連続する例である。

作成手順

  1. 基となるテーブルは[T_成績]とし、使用するフィールド名は[氏名][大会名称][種目] [クラス] [順位]です。
  2. 非連結のフォームを作成します。名前は[F_成績入力]です。
  3. フォーム上に5つのテキストボックスを作成し、名前をTxt_氏名①、Txt_大会名称②、Txt_種目③、Txt_クラス④ 、txt_順位 とします。
  4. 2つのコマンドボタンを作成し、名前をCmd_登録⑤、Cmd_閉じる⑥ とします。
  5. 登録ボタンに下のプロシージャを作成します。
    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

使用例

  1. レコードを入力したところです。
  2. 登録ボタンをクリックした後、氏名のみが空白となり他は前の入力が保持されている。次は新しい名前データを入れ、 変更するコントロールの書き換えをするだけで済みます。
  3. テーブルを開くとデータが保存されています。「番号」フィールドはオートナンバーです。

(この項終わり)