フォーム上でのレコードの追加・更新・削除を禁止する

 フォームを作成することにより、データベースに記録されているデータを見やすく、自由に変更することができます。大変便利なのですが、それらの操作を禁止したい、という場合もあります。その場合の設定についてです。

f:id:accs2014:20180609213706p:plain:right:w400

 サンプルとしてこのようなフォームを用います。
 名称や価格などの基本情報が記載されていますが頻繁に変更するようなものではないので、誤操作による変更を防ぐ意味からも、必要なとき以外はレコードの追加・更新・削除を禁止するものとします。


f:id:accs2014:20180609213702p:plain:right:w600

 禁止の設定をしてみます。
 フォームのプロパティを開きます。「追加の許可」「削除の許可」「更新の許可」というプロパティがあります。これらはいずれもデフォルトでは「はい」なのでフォームは自由に編集できますが、すべて「いいえ」とします。


f:id:accs2014:20180609213659p:plain:right:w400

 以上で設定は終了です。とても簡単ですが、これだけでフォームによるデータの変更は全くできなくなります。新規レコードが現れなくなるのでレコードの追加ができませんし、(画像のように)レコードセレクタを右クリックしても「切り取り」がグレーアウトしてレコードの削除もできません。テキストボックス等の見た目も特に変わらないものの、カーソルを合わせてキーボードを叩いても値は何も入力されません。フォームは完全に「見るだけ」のものになります。


 なお、注意点ですが、この設定によりフォーム上でのデータの変更を禁止したとしても、テーブルを直接開いて変更することは防げません。
 フォームによる編集だけでなく、テーブルのデータそのものの変更を防ぎたいのであれば、データマクロにより禁止するという方法があります。
 データマクロによりテーブルの変更を禁止する簡単な例について、以下の記事で触れていますので参考まで。

www.accessdbstudy.net