Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Access 2016)
ナビゲーションフォームに配置したフォームの値を取得したい
投稿日時: 18/05/09 12:20:58
投稿者: lucid

お世話になります。
 
前提として・・・
ナビゲーションフォーム(名前:NAVIFORM)を作成します。
移動ボタンを押したときにフォーム(名前:TESTFORM)が開くように設定します。
TESTFORMにはFIELD項目があるとします。
VBAを利用して、ナビゲーションフォーム上の移動ボタンを押したときにTESTFORMのFIELD項目の値を取得するコードを作ろうとしています。
 
MsgBox Forms!NAVIFORM!TESTFORM!FIELD.Value
 
としたのですが下記エラーが出てしまい値を参照できません。
「実行時エラー'2465':
 指定した式で参照されている'TESTFORM'フィールドが見つかりません。」
 
どのようにしたらTESTFORMのFIELD項目の値を取得できるのでしょうか?
よろしくお願いいたします。

回答
投稿日時: 18/05/09 13:22:03
投稿者: sk

引用:
MsgBox Forms!NAVIFORM!TESTFORM!FIELD.Value

MsgBox Forms![NAVIFORM].Form![FIELD].Value
 
-------------------------------------------------------------
 
サブフォームとして埋め込まれたフォームは
Form プロパティから参照して下さい。

投稿日時: 18/05/09 14:34:38
投稿者: lucid

sk さんの引用:

MsgBox Forms![NAVIFORM].Form![FIELD].Value

 
回答ありがとうございます。しかしエラーが出てしまいました。
「実行時エラー'2465':
 指定した式で参照されている'FIELD'フィールドが見つかりません。」
 
もしかして下記の手順に誤りがあるのでしょうか。
「移動ボタンを押したときにフォーム(名前:TESTFORM)が開くように設定 」
を実現するために、プロパティシートで移動ボタンのプロパティを開き、データタブの移動先の名前にTESTFORMを設定しています。
この手順では「サブフォームとして埋め込まれたフォーム」にはならない、ということなのでしょうか。
 
アドバイスいただけると幸いです。
よろしくお願いいたします。
 

回答
投稿日時: 18/05/09 14:56:59
投稿者: sk

一部修正漏れ。
 

引用:
MsgBox Forms![NAVIFORM].Form![FIELD].Value

MsgBox Me![NAVIFORM].Form![FIELD].Value
 
--------------------------------------------------------------
 
[NAVIFORM]という名前のナビゲーションフォームコントロール
(サブフォームコントロール)が埋め込まれているメインフォーム側の
モジュールから上記のコードを実行する場合は、以上のように記述して下さい。

投稿日時: 18/05/09 15:52:07
投稿者: lucid

それでもエラーが出てしまうようです。
 
「実行時エラー'2465':
 指定した式で参照されている'NAVIFORM'フィールドが見つかりません。」
 
いろいろ試してはいますがどうもうまくいきません。
さらにアドバイスいただけると幸いです。

回答
投稿日時: 18/05/09 15:55:24
投稿者: sk

引用:
「実行時エラー'2465':
 指定した式で参照されている'NAVIFORM'フィールドが見つかりません。」

移動コントロールとリンクしているサブフォームコントロールの
[名前]プロパティの値をご確認下さい。
 
明示的に[NAVIFORM]という名前に変更されたわけではないなら、
恐らくデフォルト名の[NavigationSubform]のままになっているはず。

投稿日時: 18/05/09 16:07:19
投稿者: lucid

MsgBox Me![NavigationSubform].Form![FIELD].Value
 
で取得できました!
ご指摘の通りコントロール名はNavigationSubformとなっていました。
本当にありがとうございます。問題解決しました。