Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1584 / 2272 ツリー ←次へ | 前へ→

【6398】他のフォームのフィルタを操作したい NK 05/10/4(火) 11:59 質問[未読]
【6399】Re:他のフォームのフィルタを操作したい hatena 05/10/4(火) 12:07 回答[未読]
【6401】Re:他のフォームのフィルタを操作したい NK 05/10/4(火) 13:34 質問[未読]
【6404】Re:他のフォームのフィルタを操作したい hatena 05/10/4(火) 14:39 回答[未読]
【6406】Re:他のフォームのフィルタを操作したい NK 05/10/4(火) 14:48 発言[未読]
【6408】Re:他のフォームのフィルタを操作したい hatena 05/10/4(火) 15:34 回答[未読]
【6409】Re:他のフォームのフィルタを操作したい NK 05/10/4(火) 15:57 発言[未読]

【6398】他のフォームのフィルタを操作したい
質問  NK  - 05/10/4(火) 11:59 -

引用なし
パスワード
   Form1を閉じる際、Form2を呼び出した上で
あらかじめ引数に取得しておいた文字列を元に
Form2のサブフォームに対してフィルタを実行したいのですが
うまくいきません。
Form("Form2").サブフォーム.Form.Filter=引数

どういったコードを記述すればよろしいでしょうか。
どなたかご教授願います。

Private Sub CloseButton_Click()
  DoCmd.OpenForm "Form2"
  ※ここでForm2のサブフォームに対してFilterをかけたい
  DoCmd.Close acForm, "Form1", acSaveYes
End Sub

【6399】Re:他のフォームのフィルタを操作したい
回答  hatena  - 05/10/4(火) 12:07 -

引用なし
パスワード
   >Form("Form2").サブフォーム.Form.Filter=引数
^^^^^
Forms("Form2").サブフォーム.Form.Filter=引数

ですね。
他に、

Forms!Form2!サブフォーム.Form.Filter=引数

【6401】Re:他のフォームのフィルタを操作したい
質問  NK  - 05/10/4(火) 13:34 -

引用なし
パスワード
   hatenaさん、ありがとうございました。
教えていただいた部分については恐らく上手くいったと思うのですが、
今度はフィルタの元となる引数の取得が上手くいっていない事が
判明してしまいました・・・。

記述は以下の通りです。

 DoCmd.OpenForm "Form2"
 KeyWord = Forms("Form1").サブフォーム.Form.Filter
 DoCmd.Close acForm, "Form1", acSaveYes 引数 = Forms

”マクロで記述しているフォーム(Form1)が見つかりません”
というMSGが出力されます。
なお、このコードはFrom1のサブフォームに記述してあるもので
サブフォームのコマンドボタンを押す事で起動されます。

【6404】Re:他のフォームのフィルタを操作したい
回答  hatena  - 05/10/4(火) 14:39 -

引用なし
パスワード
   >”マクロで記述しているフォーム(Form1)が見つかりません”
>というMSGが出力されます。

メッセージ通りだとすると、Form1 という名前のフォームが
無いということですね。フォーム名に間違いは無いですか。

【6406】Re:他のフォームのフィルタを操作したい
発言  NK  - 05/10/4(火) 14:48 -

引用なし
パスワード
   ▼hatena さん:
>>”マクロで記述しているフォーム(Form1)が見つかりません”
>>というMSGが出力されます。
>
>メッセージ通りだとすると、Form1 という名前のフォームが
>無いということですね。フォーム名に間違いは無いですか。

実際にはForm1の部分は、
『【フォーム】メイン』という名前を割り当てています。
他のコードからコピー&ペーストしたので間違いは無いのですが・・・

【6408】Re:他のフォームのフィルタを操作したい
回答  hatena  - 05/10/4(火) 15:34 -

引用なし
パスワード
   6401のコードの

 DoCmd.OpenForm "Form2"
 KeyWord = Forms("Form1").サブフォーム.Form.Filter
 DoCmd.Close acForm, "Form1", acSaveYes 引数 = Forms
                     ^^^^^^^^^^^^
の部分はコピーミスで実際にはないのですよね。
あればコンパイルが通りませんので。

フォーム名とう変更せずにそのままのコードを
張り付けてもらえますか。

とりあえず、
最初の行にブレイクポイントを設定して、ステップ実行して、
どの行でエラーがでるか確認してみてはどうでしょうか。

【6409】Re:他のフォームのフィルタを操作したい
発言  NK  - 05/10/4(火) 15:57 -

引用なし
パスワード
   先ほどの6401のコードはコピーミスです。申し訳ありません。
実際に使っているコードは以下の通りです。
なお、コマンド13は「【フォーム】メイン」のサブフォーム上に
あるコマンドボタンです。

−−−−−−−−−−−−−−−−−−−−−−−
Private Sub コマンド13_Click()
  DoCmd.OpenForm "【フォーム】検索結果"
  KeyWord = Forms("【フォ−ム】メイン").サブフォーム.Form.Filter
  DoCmd.Close acForm, "【フォーム】メイン", acSaveYes
End Sub

1584 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078230
(SS)C-BOARD v3.8 is Free