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

データを帳票フォームで縦方向に入力する。

こちらは、Accessで作成した、入力用のフォームサンプルです。サブフォームに明細データを入力するようにしていますが、今回は、3つあるテキストボックスをそれぞれ縦方向に入力していけるように設定していきます。例えば、先に「担当ID」を10件、縦に入力して、その次に「金額」を縦に10件入力していくというときなどです。

例えば、毎月送られてくる、運送会社の請求書をもとに、担当者や地域分類などを請求運賃に割り当てて、データ管理するときなど、シンプルだけど、量の多い入力をしていくときなどに有効なフォームです。

フォーム

作成の流れ

  1. デザインビュー
  2. コードの記述
  3. 使い方

デザインビュー

こちらが、そのフォームをデザインビューで開いたところです。
フォームデザイン

メインフォーム

  1. フォームヘッダーに、各ラベルを配置しています。
  2. 詳細セクションの最上部に各テキストボックスを配置しています。それぞれのコントロールソースにメインテーブルのフィールドを充てています。
  3. その下にサブフォームを配置しています。
  4. 詳細セクションの最下部に各コマンドボタンを配置しています。

サブフォーム

  1. フォームヘッダーに、入力するフィールドに対応するコマンドボタンを配置しています。
  2. その下に各ラベルを配置しています。
  3. 詳細セクション各テキストボックスを配置しています。それぞれのコントロールソースにサブテーブルのフィールドを充てています。
  4. フォームフッターに金額の合計を表示するテキストボックスとラベルを配置しています。

コードの記述

では、サブフォームのコマンドボタンクリック時イベントにコードを書いていきます。

  1. コマンドボタン[cmd担当]のクリック時にコードを書きます。
  2. テキストボックス[txt担当]のタブストップをtrueにします。
  3. それ以外のテキストボックスのタブストップはFalseにします。
  4. SetFocusメソッドで、[txt担当]にカーソルを合わせるようにします。最初のレコードにカーソルを合わせます。
  5. DoCmd.GoToRecordメソッドで、最初のレコードにカーソルを合わせます。
Private Sub cmd担当_Click()
Me.txt担当.TabStop = True
Me.txt金額.TabStop = False
Me.txt地域.TabStop = False

Me.txt担当.SetFocus
DoCmd.GoToRecord , , acFirst
End Sub

同様に、コマンドボタン[cmd金額]と[cmd地域]にもコードを書きます。

Private Sub cmd金額_Click()
Me.txt担当.TabStop = False
Me.txt金額.TabStop = True
Me.txt地域.TabStop = False

Me.txt金額.SetFocus
DoCmd.GoToRecord , , acFirst
End Sub
Private Sub cmd地域_Click()
Me.txt担当.TabStop = False
Me.txt金額.TabStop = False
Me.txt地域.TabStop = True

Me.txt地域.SetFocus
DoCmd.GoToRecord , , acFirst
End Sub

メインフォーム読み込み時に、新しいレコードに移動するようにコードを書きます。

  1. DoCmd.GoToRecordメソッドで、新規のレコードに移動します。
  2. SetFocusメソッドで、最初に入力するコンボボックス[業者ID]にカーソルを合わせます。
Private Sub Form_Load()
DoCmd.GoToRecord , , acNewRec
Me.業者ID.SetFocus
End Sub

テキストボックス[txt日付]の入力を終えたら、サブフォームに移動します。(フォーカス喪失後イベント)

  1. サブフォームコントロール[sub]にフォーカスを合わせます。
  2. [cmd担当]にカーソルを合わせます。
Private Sub txt日付_LostFocus()
Me.sub.SetFocus
Me.sub.Form.cmd担当.SetFocus
End Sub

作成の流れへ戻る

使い方

サブフォームの明細を入力するときは、それぞれのコマンドボタンをクリックしてから、入力するようにします。

フォーム

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

コメントを残す

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

コメントフィード

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

PAGE TOPへ戻る