プロが教えるわが家の防犯対策術!

アクセス初心者です。

アクセスで「サブフォームa(~n)」を持つ「フォーム1」を参照用(ユーザー用read only)と追加変更用(管理者用)を開きたいのです。
(サブフォームは「フォーム1」の主キーで選択されたクエリを基にしたフォームを使用)

私の不勉強さもあるのか、マクロでは、フォームをread onlyに設定できないようですし、「フォーム1」のプロパティの設定をしてしまうと、「フォーム1」は参照専用のフォームとなってしまうようです。

また、サブフォームについては、追加・編集モードの選択もできず、結局コピーではできず、苦労しきりです。
こういう場合、初心者レベルの私としては、「フォーム1」を基に、プロパティを変えることで対応せざるを得ません。(サブフォームも二通りで二度手間)

実務上は、手間とボリウムの問題ですので構わないのですが、「そんなはずはない」という思いもありますし、でもVBEのコードを書くには、私の「バカさ加減」が許しませんし・・・・

こういう場合は、一般的にはどうしたらよいのでしょう。

現状サブフォームには、検索結果としてクエリを基にしたフォーム(表形式)に詳細表示ボタンを貼り付けています。メインフォームの主キーにリンクしたレコードがサブフォームに表示されるわけですが、そのサブフォームに詳細表示ボタン(マクロ)で詳細情報を、read onlyと編集を選択させたいのですが。

私の能力とユーザーのレベルからは、別々のフォームでプロパティをそれぞれ設定して、メニューで分岐させるのが、不意なレコードの書き換えや削除を防止する最良の方法でしょうか?

どなたかアドヴァイスお願いします。
質問もままならないほど、初心者です。

A 回答 (1件)

こんにちは。



>別々のフォームでプロパティをそれぞれ設定して、メニューで分岐させるのが、
>不意なレコードの書き換えや削除を防止する最良の方法でしょうか?

うーーーん。。。それが、一番簡単で、最良の策ですね。
悩んでいるよりも、この方法でちゃんと運用できるように、ユーザーへの説明をしっかりした方が良いと思います。

そして、VBAの理解が深まったところで、管理者用フォームを開くにはパスワードが必要となる仕組みを追加するのが良いと思います。

ちなみに、VBAでやるなら、まずフォームを開いた人が管理者なのかユーザーなのかを判定し、その結果によりフォームの下記3つのプロパティを操作します。読み取り専用にするなら、3つともFalseにします。

AllowAdditions/追加の許可
AllowEdits /更新の許可
AllowDeletions/削除の許可
    • good
    • 0
この回答へのお礼

お礼が遅くなり失礼致しました。
取り敢えずは、複数の同様フォームを作成して急場しのぎです。
正規化が大事だということを鵜呑みにして、テーブルを分割したのは良いものの、データの集計には、反って使いにくい構造になってしまったみたいです。
クエリで該当レコードは参照できるものの、別の連結テーブルのフィールドのデータを集計するに四苦八苦です。

また私の愚問に出会ったときには宜しくお願いいたします。
改めてありがとうございました。

お礼日時:2004/12/15 18:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!