2009-06-15 12 views
0

Microsoft Access 2007では、ユーザーがフォーム経由で編集しているときにのみデータを選択して更新できるのですか?アクセス - データの更新は可能ですが、フォームのみ

私は、外部テーブルのデータシート(別のサブテーブルを持っている)を含むフォームを持っています。私は、ユーザーがフォーム内のデータシートを介して自分のコンテンツだけを編集したいと思っています。

SQLバックエンドを実行するので、ストアドプロシージャを使用でき、EXECUTE権限を持つプロシージャのみを実行できます。

編集:

テーブルはAccessで非表示にすることができ、それらは、データベースの所有者でない限りできないユーザーは、それを表示するには?また、テーブルを直接編集するのではなく、サブデータシートを使用して更新するストアドプロシージャをどのように実行できますか?私は関連テーブルに「ドリルダウン」する能力を保持したい。

答えて

2

あなた自身の質問に答えたと思います。

ストアドプロシージャを使用すると、データを取得および更新したり、リンクされたテーブルを削除したり、それらに対するUPDATE権限を削除したりできます。

フォームフィールドで便利なデータバインディングが失われます。これはVBAでリモデリングする必要があります。

また、(データバインディングを維持するために)フォームを読み取り専用のデータソースにポイントし、実際の更新を行うために「Before Update」イベントをキャッチしてから、Access自体が更新内容を保存します。これは単なるアイデアですが、動作するかどうかはテストしていません。

1

Jetユーザーレベルセキュリティを掘り下げたい場合は、ユーザーがリンクテーブルを読み込み不可能にし、RWOP(Run With Owner Permission)クエリを使用してフォームでの編集を許可できます。もちろん、データベースウィンドウへのアクセスを削除して、RWOPクエリを実行しないようにします。これは、フォーム内で実行されていない限りレコードを返すことを禁止するRWOPクエリを使用しているフォームへの参照を入れることによっても強化できます。

関連する問題