ACCESS 単票フォームで指定したレコードへ移動する機能

ACCESSのフォームでよく利用されるのが単票フォームです。
単票フォームでは1レコードを1画面に表示し、主にデータ入力画面として利用されます。

この単票フォームでは1レコード分のデータしか表示できないため、他のレコードへ遷移する機能が必要です。

今回は、単票フォームで指定したレコードへ移動する機能をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSで実際に作成したフォームやレポートを、その作成方法と共にご紹介していきます。

目次

単票フォームでレコードを移動するにはDoCmd.OpenFormを使う

単票フォームでレコードを移動する場合、レコードを移動するメソッドであるDoCmd.GoToRecordを使えばよいと思うかもしれません。
しかし、実際に利用するのはDoCmd.OpenFormです。

例えば、以下のフォームで下段に移動ボタンを配置しました。

ここで、指定した受注IDのレコードへ移動するために、移動ボタンに設定したプロシージャは以下の通りです。

では、以下で詳細に説明していきます。

DoCmd.GoToRecordでは主キーを指定した移動ができない

フォームでレコードを移動する際、真っ先に思いつくのはDoCmd.GoToRecordメソッドだと思います。
DoCmd.GoToRecordメソッドは以下の構文で利用できます。

3つ目の引数である「移動先のレコード指定」に「acGoTo」を指定すれば、指定したレコードに移動できます。

例えば以下のように指定します。

この例でいうと最後の引数に指定した5のレコードに移動します。

ただし、この指定はレコードソースになっているテーブルやクエリのレコードを最初から数えていった順番での指定しかできません。
特定のフィールドの特定の値を指定して移動させることはできないのです。

上記の例でいうと単純にフォームのレコードソースになっているテーブルの5番目のレコードに移動します。
では、受注伝票フォームで5番目のレコードに移動してみましょう。

フォームの下段を見ていただくと、5/10となっているので確かに5番目のレコードです。
しかし、このフォームの主キーとなっている受注IDは8となっています。

主キーの値は必ずしもテーブルやクエリのレコードを最初から数えた場合のレコード数と一致するわけではありません。ACCESSでのレコードの指定は主キーを行うのが確実ですので、主キーを指定したレコードの移動ができないという点で、DoCmd.GoToRecordメソッドで指定したレコードに移動することは難しいと言えます。

DoCmd.GoToRecordについては以下の記事に詳しく記載していますのでご覧ください。

DoCmd.GoToRecordでレコードを移動する方法

DoCmd.OpenFormで主キーを指定してフォームを開き直す

そこで利用するのがDoCmd.OpenFormメソッドです。
DoCmd.OpenFormメソッドはフォームを開くというメソッドです。

フォームを開く際に引数のフィルター条件を使って指定したレコードのみを表示することが可能です。
では、実際に上記の例でレコードを指定して移動させてみましょう。

フォームの移動ボタンクリック時に以下のイベントプロシージャを設定しました。

1つ目の引数でT_受注サンプルフォームを指定し、4つ目の引数で受注IDに、受注サンプルフォームの「移動先受注ID」の入力値を指定しています。

これにより、実際にはフォームを開き直しているのですが、ユーザーにはフォームで指定した受注IDのレコードに移動したように見せることが可能です。

DoCmd.OpenFormの使い方は以下の記事をご覧ください。

DoCmdOpenFormの使い方

以上、単票フォームで指定したレコードへ移動する機能をご紹介しました。



この記事の内容を実際に試したい方へ

本記事の内容を実際にACCESSを動かしながら確認したいという方向けに、記事で紹介した機能が実装されたサンプルファイルを販売しています。記事内で解説しているテーブル、クエリ、フォーム、レポート、VBAのプロシージャなどをそのまま動く形で実装しました。

学習用としてはもちろん、加工して自社業務に利用することも可能です。
ご興味のある方は以下からご覧ください。

ブログ用サンプルファイルサムネイル_単票フォームで指定したレコードへ移動する機能

ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に300以上のACCESSデータベースの開発・修正実績のあるはこにわガジェット(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

フッターバナー

最後までお読みいただき、ありがとうございました。

単票フォームで指定したレコードへ移動する機能

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次