F管理を閉じるとき、F管理総合の並べ替えをしたくて、以下コードを記載したのですが
F管理を閉じるとき「F管理総合が見つかりません。」と表示されます。
なぜでしょうか。。
未だにrefresh、requeryを理解しきれていないようです。。
Private Sub Form_Close()
Me.Refresh
Forms!F管理総合.Requery
End Sub
F管理を閉じるとき、F管理総合の並べ替えをしたくて、以下コードを記載したのですが
F管理を閉じるとき「F管理総合が見つかりません。」と表示されます。
なぜでしょうか。。
未だにrefresh、requeryを理解しきれていないようです。。
Private Sub Form_Close()
Me.Refresh
Forms!F管理総合.Requery
End Sub
そのエラーがでるとき「F管理総合」フォームは開いてますか。
あるいは「F管理総合」がサブフォームということはないですか。
おそらく「F管理総合」フォームを開いていなかったようです・・そういうことですね。
ありがとうございました。
この件について、改めて質問させていただきたく投稿致します。
「F管理」を「F管理総合」から開くときと、直接他フォームの履歴から開くパターンがあります。
他フォームから開くときは「F管理総合」を開いていないのでエラーが起きるのですが、
「F管理総合」から開くときもあるので下記コードは残したいです。
条件分岐できますでしょうか。
On Error Resume Nextを使えばいいですね。解決しました。
Forms!F管理総合 と 他フォームが同時に開いていることがないということが保障されていればいいですが、
もし、同時に開いていて、他フォームから「F管理」を呼び出したとき、意図しない動作になる恐れがあります。
現状、同時に開くことがなくても、将来、機能を追加したり、仕様変更でそうならないとも限りません。
自分がするなら、「F管理」をダイアログモードで開いて、「F管理総合」の方で自身を再クエリするという方法を使いますね。
「F管理総合」のモジュール
「F管理」のモジュール
ご参考までに。
ありがとうございます。そこまで考えが及びませんでした。
スミマセン、F管理を閉じるとき、F管理総合をrequeryしないといけないと思っていたのですが、教えていただいた内容だとF管理を開くときにrequeryしているようです。
ダイアログだと閉じるときrequeryになるということでしょうか?
はい、その通りです。
Windowmode:=acDialog を指定して(ダイアログモードで)開くと、開いたフォームを閉じるまで次のコードに進みません。
閉じた後に次のコードが実行されます。