1

私は、ユーザーが読む(ただし編集はしない)ためにテーブルを開くボタンを備えた非常に単純なフォームを作成しています。コマンドは次のとおりです。

DoCmd.OpenTable "Tbl_SendLog", acViewNormal, acReadOnly
  1. 良い部分:予想どおり、ユーザーはレコードを追加または変更できません
  2. 悪い部分:ユーザーはまだ列全体を追加できます。さらに良いことに、Accessには、テーブルを閉じるときに「変更を保存しますか」というプロンプトも表示されません。それはただそれを保存します。

acReadOnlyがこれを処理すると思っていました。どうやらそうではありません。だから私の質問は:ユーザーが列を追加できないようにこれを変更するにはどうすればよいですか?

(必要に応じて、テーブルのフォームまたはレポートを作成しますが、より簡単なオプションがある場合は、代わりにそれを使用します)

4

1 に答える 1

0

最も簡単な方法 (=作業が最も少ない方法) は、Remou がコメントで既に提案しているように、クエリを使用することです。

クエリselect * from Tbl_SendLogを作成して、次のように開きます。

DoCmd.OpenQuery "YourQuery", acViewNormal, acReadOnly

長所:クエリを右クリックすると、(テーブルを直接開いたときのように) コンテキスト メニューに [列の追加] がないため、ユーザーは列を追加できません
クエリを台無しにして、その後は機能しなくなる可能性があります。

それを受け入れることができる場合 (= ユーザーがクエリを変更する可能性が低い場合)、このようにすることができます。

それができない場合は、(質問で既に提案したように) フォームまたはテーブルを作成することがおそらく最善の解決策です。

于 2012-06-29T17:25:50.927 に答える