- ベストアンサー
ACCESS2003のコントロール指定方法
- ACCESS2003のフォーム上のコントロールを再クエリする方法が分からない
- フォーム内のコントロールを指定するには、マクロ内でアクションとコントロールを指定する必要がある
- 他のフォーム上のコントロールを指定する方法が分からない
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 他のフォーム上でのコントロールを指定するときマクロ上でどのように > 指定すればいいでしょうか。 kmetuさんご紹介のURLの「記事No: 32063」でTWESTさんが説明されて いるように、『再クエリ』アクションで『コントロール名』引数を指定する場合、 そのコントロールは、アクティブオブジェクト内のものである必要があります。 ですので、手順としては、『再クエリ』アクションの実行前に、再クエリを行い たいコントロールがあるフォームをアクティブにしてやれば、ご希望の動作を 行えるようになります。 そのためには、 対象が別フォームにある場合は『オブジェクトの選択』アクションを、 同フォームのサブフォーム内なら『コントロールの移動』アクションを、 それぞれ使用します。 【別のフォームの場合】 <アクション> <引数(複数ある場合は上から順に)> オブジェクトの選択 「フォーム」、「(対象フォーム名)」、「いいえ」 再クエリ 「(対象コントロール名)」 オブジェクトの選択 「フォーム」、「(呼出元のフォーム名)」、「いいえ」 ※2個目の「オブジェクトの選択」は、マクロを実行する前にアクティブだった フォームを、再びアクティブにさせるためです。 別フォームをアクティブにしたい場合は無用です。 【呼出元の配下のサブフォームの場合】 <アクション> <引数> コントロールの移動 「(当該サブフォーム名)」 再クエリ 「(対象コントロール名)」 コントロールの移動 「(呼出元のコントロール名)」 ※2個目の「コントロールの移動」も、上と同様にマクロ実行前にアクティブ だったコントロール(=マクロ実行用のコマンドボタン等)を再びアクティブに させるためです(不要なら削除でOk)。 なお、サブフォームに同名のコントロールがある場合は、 1)メインフォームにしかないコントロールを指定した「コントロールの移動」 2)呼出元のコントロール名を指定した「コントロールの移動」 と、段階を経る必要があります(=計3回の「コントロールの移動」が必要) 【別フォームのサブフォームの場合】 <アクション> <引数> オブジェクトの選択 「フォーム」、「(対象フォーム名)」、「いいえ」 コントロールの移動 「(当該サブフォーム名)」 再クエリ 「(対象コントロール名)」 オブジェクトの選択 「フォーム」、「(呼出元のフォーム名)」、「いいえ」 ※対象フォームでフォーカスを持たせておきたいコントロールがある場合は、 「【呼出元の配下のサブフォームの場合】」と同様に、「コントロールの 移動」アクションを追加してください(位置としては「再クエリ」の次)。
その他の回答 (1)
- kmetu
- ベストアンサー率41% (562/1346)
http://www.accessclub.jp/bbs/0088/beginers32025.html こちらを参照してください。
お礼
kmetu様、ありがとうございました。 なるほど、再クエリ指定は他のオブジェクトには指定ができなかったのですね。 代わりに、フォーカス取得時とフォーカス喪失時のチェックを利用して 本来の問題点は解決できました。 ありがとうございました。
お礼
詳しくて分かりやすいご説明、ありがとうございました。 そして、返事が大変遅れてしまいまして、申し訳ありませんでした。 なるほど、オブジェクトの選択かコントロールの移動で アクティブにできるんですね。 ありがとうございました。