2010/09/29

access2010 "SetProperty/プロパティの設定" マクロ アクション

"SetProperty/プロパティの設定" マクロ アクション の不具合メモ
<再現>
Form.DirtyイベントにSetProperty/プロパティを設定
  • コントロール名:(コントロール名)
  • プロパティ:値
  • 値:任意
 で、どうなるかというと、
<現象>
マクロが再帰呼び出しされる。カウンタをこさえて確認



<対処>
エラー時マクロアクションでエラーメッセージを表示させないことは可能だが、再帰呼び出しは発生する。なので、2007同様値の代入マクロアクションを使う。
もしくは、VBAで対応。
Private Sub Form_Dirty(Cancel As Integer)
    DoCmd.SetProperty Me.フィールド3.Name, acPropertyValue, Now()
End Sub

と、思い込んでたけど、VBAでもだめなんだな。値の代入であれば、Dirtyイベントが発生しないんだけど、Dirtyイベントでプロパティの設定を実行させた場合、さらにDirtyイベントが発生してしまうと。
Private i As Integer

Private Sub Form_Dirty(Cancel As Integer)
    DoCmd.SetProperty Me.フィールド1.Name, acPropertyValue, 1234
    i = i + 1
    Debug.Print i '73までカウントした
End Sub

サポート:現象確認済み

0 件のコメント: