ACCESS フォームの入力内容を保存する方法
ACCESSでは主にフォームを使ってデータの入力を行います。
では、フォームで入力したデータをテーブルに保存するにはどうすればよいでしょうか。
今回は、フォームの入力内容を保存する方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
フォームの内容の保存
ACCESSではフォームに入力した内容は、リアルタイムかつ自動でテーブルに保存されるというのが基本的な利用方法です。
ACCESSでフォームに入力された内容をテーブルに保存するには、まずフォームのレコードソースに該当のテーブルを設定する必要があります。
フォームをデザインビューで表示し、プロパティシートの「レコードソース」にテーブルを指定することで、フォームとテーブルが連結されます。
上記の例ではTRN_受注サンプルテーブルがフォームのレコードソースとして指定されています。
実際のフォーム側を見てみましょう。
白い四角がテキストボックス(実際に値を入力する箇所)です。
テキストボックスにテーブルのフィールド名が表示されていることがわかります。この状態であればテキストボックスに入力した値が自動的に指定したテーブル(今回はTRN_受注サンプル)の該当のフィールドに保存されます。
一方、一番下にあるメモ欄は非連結となっています。
これはこのテキストボックスとテーブルのフィールドが連結していないことを示しています。
この状態ですとテキストボックスに入力した値はテーブルに保存されず、フォーム上で表示されるだけとなります。そのため、一度フォームを閉じると値は消えてしまいます。
上記のフォームとテーブルとの連結、非連結を理解すれば基本的なフォームの内容の保存ができると思います。
明示的にフォームの内容を保存する方法
ここまで説明したように、ACCESSでは基本的に自動でフォームの入力内容が保存されます。
しかし、場合によっては特定のタイミングで明示的にフォームの内容をテーブルに反映したい場合もあるでしょう。
そういった場合に利用できるのがACCESS VBAで利用できるDoCmd.Saveメソッドです。
DoCmd.Saveを記述するとそのタイミングでテーブルへの保存が行われます。
記述方法はそのまま
DoCmd.Save
です。
DoCmd.Saveの利用例
では、DoCmd.Saveを利用したフォームの作成例をご紹介します。
以下のサンプルフォームを準備しました。
このフォームはレコードソースにTRN_受注サンプルテーブルを指定してあります。
フォームの下段に「保存」ボタンと「戻す」ボタンを置いており、保存ボタンを押した際にDoCmd.Saveメソッドを利用してテーブルへデータを書き込みます。
フォームをデザインビューで見てみましょう。
保存ボタンのクリック時イベントにイベントプロシージャを設定しています。
イベントプロシージャの内容は以下の通りです。
Private Sub 保存_ボタン_Click()
DoCmd.Save
End Sub
これで保存ボタンを押した際に保存ができます。
そしてもう一つ、戻すボタンも設置しています。
戻すボタンに設定したイベントプロシージャは以下の通りです。
Private Sub 戻す_ボタン_Click()
Me.Undo
End Sub
こちらは逆に、Me.Undoを指定して入力内容を保存せずに元に戻すようにしてあります。
これらを使い分けることで入力が簡易になるでしょう。
Undoについて詳しくは以下の記事をご覧ください。
以上、フォームの入力内容を保存する方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。