Access2019でマクロを使用してフォームのテキストボックスの値を新しいレコードのフィールドに代入する際にエラーが発生することがあります。この記事では、よくあるエラー「このオブジェクトには、オートメーションオブジェクト’テーブル1’は含まれません」の原因と、その解決方法について詳しく解説します。
Accessマクロの基本的な流れとエラー
まず、マクロを使ってフォームのテキストボックスに入力された値を、別のテーブルのフィールドに代入する基本的な流れを確認しましょう。一般的には、テーブルを開き、新しいレコードを追加し、その後にフォームのテキストボックスの値をフィールドに代入する処理が必要です。
ですが、これを行う際に「オートメーションオブジェクト’テーブル1’は含まれません」というエラーメッセージが表示されることがあります。このエラーは、テーブル名やフィールド名の参照方法に誤りがあることが原因です。
エラーの原因とその解説
「このオブジェクトには、オートメーションオブジェクト’テーブル1’は含まれません」というエラーは、マクロで指定したテーブルの参照が正しくない場合に発生します。特に、テーブル名を直接指定する場合や、フィールドの参照方法が誤っていると、このエラーが出ることがあります。
エラーが発生する理由として考えられるのは、マクロでの「値の代入」アクションで「テーブル1」をオブジェクトとして直接指定したためです。Accessでは、テーブルをオブジェクトとして参照する際には正しい形式で指定する必要があります。
正しいテーブルとフィールドの指定方法
テーブルやフィールドを参照する際には、フォームのコントロールを正しく指定する必要があります。フォームに表示されているテキストボックスの値をテーブルのフィールドに代入するためには、フォーム名とコントロール名を適切に指定する必要があります。
具体的には、次のように指定することができます。
Forms![フォーム1]![テキスト1]
これで、フォーム1にあるテキスト1コントロールの値を参照することができます。これを使って、テーブル1のフィールド11に値を代入するマクロを作成します。
エラー回避のためのマクロ設定
マクロでの設定方法としては、以下の手順が重要です。
- 「テーブル1」を開く
- 「新しいレコード」を作成する
- 「値の代入」アクションで、フォームのテキストボックスの値をテーブルのフィールドに代入する
このとき、マクロの「値の代入」アクションでは、次のように設定します。
アイテム:[テーブル1]![フィールド11]
式:[Forms]![フォーム1]![テキスト1]
この設定で、エラーを回避し、テーブルに値を正しく代入できるようになります。
まとめ
Access2019でマクロを使用してフォームのテキストボックスの値をテーブルに代入する際のエラーについて、原因と解決方法を詳しく解説しました。テーブルやフィールドの指定方法を正しく行うことで、エラーを回避し、スムーズに値を代入できるようになります。正しいマクロ設定を行うことで、Accessを効果的に活用できるようになります。
コメント