0

MSSQLでは、トリガーをテーブルにロードすると、操作対象のレコード(更新、挿入、削除)の「キャッシュテーブル」にアクセスできることを知っています。

Accessから利用する同様のメカニズムはありますか?そうでない場合、ベーステーブルから結合テーブルに1:1-Mを適用する場合、これをどのように実行しますか?

「非常に便利な」リレーションシップスキーマを使用してみましたが、PKのiセットアップとインデックス付けの「一意の」インデックスが見つからないため、EnforceIntegrityのトリクルダウン削除部分を使用できません。私にはよくあることのように「めったに」見られませんでした、「不確定」の関係ステータス。

設計

Table1(ベーステーブル):

田畑:

  • gid
  • nm
  • (より多くのフィールド)

インデックス:

  • gid + nm(一意の識別-gidはオートナンバーではありません)
  • gid

表2(テーブルに参加):

田畑:

  • gid
  • cid
  • (より多くのフィールド)

インデックス:

  • gid + cid(一意の識別)
  • gid
  • cid

トリガーのアイデア:

削除(BeforeDeleteトリガー)

  1. (table1.gidが削除された)場合Delete * From Table2 Where gid=delete.id
    • deleteキャッシュテーブルはどこにありますか
  2. ベーステーブルからgidのエントリがすべてのテーブルで適切に更新/削除されるまで、検証を続行します

編集2012-09-04@12:20 pm

これが私が今持っているデータマクロです。おそらく構文的にずさんですが、オンラインでの測定値からこれまでに推測したことです。このフォーマットを使用するときに知っておくべき、または期待すべきことはありますか?そして、はいdeletegroup、モジュールに投稿されたglobablメソッドです。

データを削除する前に-マクロ

エンドユーザーはランタイムアクセスを使用しますが、このトリガーは、フルバージョンではなくランタイム環境によって何らかの形で妨げられるべきですか?

4

1 に答える 1

1

マクロの自然な次のステップは、ビジネスルールのモデルを提供することです。データマクロを使用すると、開発者はロジックをレコード/テーブルイベントにアタッチできます(SQLトリガーと同様)。これは、ロジックを1つの場所に記述し、それらのテーブルを更新するすべてのフォームとコードがそのロジックを継承することを意味します。一般的な寄付管理データベースに見られる可能性のあるいくつかのデータマクロシナリオを次に示します。

2010データマクロへのアクセス(トリガーと同様)

または、カスケード削除の場合は、以前の投稿へのコメントに従って関係を設定することを検討してください。Access2007の複合主キーへの参照

于 2012-09-04T16:26:20.397 に答える