0

Microsoft Access 2007で、ユーザーがフォームを介して編集しているときにのみデータを選択および更新できるようにすることは可能ですか?

外部テーブルのデータシートを含むフォームがあります(このフォームには別のサブテーブルがあります)。フォームのデータシートを介してのみ、ユーザーが自分のコンテンツを編集できるようにします。

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

編集:

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

4

2 に答える 2

2

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

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

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

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

于 2009-06-15T13:43:35.480 に答える
1

Jetユーザーレベルのセキュリティを詳しく調べたい場合は、リンクされたテーブルをユーザーが読み取れないようにし、RWOP(所有者権限で実行)クエリを使用してフォームで編集できるようにすることができます。もちろん、データベースウィンドウへのアクセスを削除して、RWOPクエリが実行されないようにします。これは、RWOPクエリを使用しているフォームへの参照を配置することによっても強化できます。これにより、フォーム内で実行されない限り、レコードを返すことができなくなります。

于 2009-06-15T23:55:41.243 に答える