Access VBA質問箱 IV

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

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


1573 / 9994 ←次へ | 前へ→

【11712】Re:実行時エラー'2467'指定した式で、閉じているかまたは存在しない・・・・・
発言  247b  - 10/7/8(木) 19:01 -

引用なし
パスワード
   こんばんわ。

経験談ですが。
フォームのオープン時イベント内で、そのフォームのコントロール等にアクセスしようとすると、
 閉じているかまたは存在しないオブジェクトを参照しています。
というメッセージが表示されることがあります。
MDBファイルを開き、最初にフォームを開いた時に、フォームオブジェクトが生成され、Formsコレクションに追加されるという動作を裏でしているようなのですが、フォームオブジェクトの生成が、マクロ処理のスピードに追いつけない時にこの問題が発生するらしい、と解釈しています。

このため、対処法としては、Open、Loadイベントは使用せず、OpenFormした後に、フォームに定義したPublicイベントを呼び出すという方法をとっています。この方法だと、オブジェクトの生成後の呼び出しになるため、問題が発生しません。
多分、こんな感じです

Public Function OPEN_MF01_JOB選択F() As Integer
  Dim frm As Form_MF01_JOB選択F
  DoCmd.OpenForm "MF01_JOB選択F"
  Set frm = Forms("MF01_JOB選択F")
  frm.Init
End Function

Public Sub Init()

  Me!T02_PJ_DT.Form.RecordSource = set_sql  '20100708 ←ここで止まる

End Sub

余談ですが上記の問題はクラスモジュールでも発生します。
クラスモジュールのPublicスコープで、例えば以下のような変数定義を行い、
 Dim x As New DAO.Recordset
Initializeプロシージャ(Class_Initialize())でx変数を使用しようとすると、稀にエラーになります。
ご参考。

6,420 hits

【11710】実行時エラー'2467'指定した式で、閉じているかまたは存在しない・・・・・ pon 10/7/8(木) 14:43 質問[未読]
【11711】Re:実行時エラー'2467'指定した式で、閉じ... pon 10/7/8(木) 17:51 発言[未読]
【11712】Re:実行時エラー'2467'指定した式で、閉じ... 247b 10/7/8(木) 19:01 発言[未読]
【11718】Re:実行時エラー'2467'指定した式で、閉じ... pon 10/7/9(金) 10:49 質問[未読]

1573 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078193
(SS)C-BOARD v3.8 is Free