Form.SourceObject
ユーザー入力に基づいてレコード ソース ( ) を変更するサブフォームがあります。サブフォームの特定のフィールドのプロパティに依存する変更追跡システムを開発していBefore Update
ます (違いがある場合はシート ビューで)。レコード ソースを変更しなければ、Before Update
適切にトリガーされます。変更すると失われ、トリガーを再割り当てする必要があります。問題は、これを行う方法を説明しているものを見つけることができなかったことです。「トラッカー」が呼び出されるコードである次を使用してみました:
Forms![PartsDatabaseX]![RepsSubformX]![Pack Rank].BeforeUpdate = "[Event Procedure]"
エラー 2455 = 「BeforeUpdate プロパティへの無効な参照を含む式を入力しました」
Forms![PartsDatabaseX]![RepsSubformX]![Pack Rank].BeforeUpdate = "Tracker"
エラー 2455 = 「BeforeUpdate プロパティへの無効な参照を含む式を入力しました」
Forms![PartsDatabaseX]![RepsSubformX]![Pack Rank].BeforeUpdate(Tracker)
コンパイル エラー = 予期される関数または変数
Forms![PartsDatabaseX]![RepsSubformX]![Pack Rank].BeforeUpdate "Tracker"
エラー 438 = 「オブジェクトはこのプロパティまたはメソッドをサポートしていません」
編集-
BeforeUpdate
さらにいじってみると、対応する before update イベントが存在すると仮定して、フォーム内のコントロールにプロパティを適切に割り当てることができます。
Private Sub Assign_Before_Update()
Me.FormCtl.BeforeUpdate = "[Event Procedure]"
End Sub
Private Sub FormCtl_BeforeUpdate(Cancel As Integer)
'Do stuff
End Sub
残念ながら、このメソッドはまだサブフォームで失敗します...
Form.SourceObject
を変更しているという事実が、プロパティの設定を妨げていると思い始めています。