- ベストアンサー
ACCESSの学び方について
初歩的な質問で失礼いたします。 私は人から教えてもらったり参考書をみたりしてACCESSを勉強している者です。まだ全然駄目なんですが、自分のやり方が正しいかどうか教えて下さいm(__)m たとえば、シンプルな顧客情報入力画面を作成したいとき、私は (1)テーブルを作成(T_1) (2)T_1を基に入力フォームを作成(F_1) (3)T_1にデータが蓄積されていき、それを基に検索したり削除したりする。 ・・といった感じです。 しかし、本やネットで見てみると他にも色々方法がありますよね。 たとえば、 (1)テーブルを作成(T_1) (2)T_1を基に入力フォームを作成(F_1) (3)F_1の追加ボタンを押下すると、追加クエリと削除クエリが実行される。 追加クエリ・・・新たなテーブルが作成される(T_2) 削除クエリ・・・T_1のデータを削除 (4)T_2にデータが蓄積されていき、それを基に検索したり削除したりする。 はたまた、こんなまどろっこしいことしないで、フォームを作って それに長いプログラムをあてはめる(InsertRecordメソッドとか?) があるかと思われます。 長くなって申し訳ありませんが、質問をまとめます。 <1>テーブルやフォームをわざわざ作って組み立てていく方法はあまり好ましくないのでしょうか? <2>テーブルやフォームを作成して組み立てていく場合、上の例ではどちらが正解なのでしょうか。また、もっとこうしたほうがいい!というアドバイスをいただけたら幸いです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
再度アドバイスいたします。 ACCESSのMDB作成は、データやクエリ、フォーム、レポート・・・それらを動かすマクロ等・・・ 手法はたくさんあるので、開発規模が小さいうちに色々なことを試してみてください。 (開発規模が大きくなると、先に回答された方の言うとおり、データベースやクエリの設計がシビアになっていきます) 以下 補足の回答の一例です。 ・データ入力時 入力用テーブル+フォームで蓄積用テーブルに対して「追加クエリ」 例:http://www.seta.media.ryukoku.ac.jp/manual/office/access/query/add_query.html ・データ検索時 蓄積用テーブルを元に検索条件指定を指定して「テーブル作成クエリ」→検索結果用テーブル+フォーム ※テーブル作成クエリにパラメータを指定する方法などを使用 ※データを不注意に破壊(削除、更新)しない自信があれば、当初のとおり蓄積用テーブルを参照しても良いかもしれません。 例:http://www.sk-access.com/Syo_Query/SqA009_Parameter.html ・データ削除や更新 検索結果用テーブルで蓄積用テーブルに対して、「削除クエリ」や「更新クエリ」を使用。(あらかじめ顧客コードなど唯一無二のフィールド(キー)を作っておく必要があります。) 例:http://www.nurs.or.jp/~ppoy/access/access/acQ010.html 例: http://makotowatana.ld.infoseek.co.jp/access/achowChangeRecordsAsGroupUpdateQueryS.htm#start 上記でよく使うクエリの種類は一通り使用するので、慣れてみてはいかがでしょうか?
その他の回答 (2)
漠然とした印象ですが、根本的な考えから(DBに関するイメージ)を替えた方がよいように思います。 DBはデータベースの名称が示すとおり、「最初にデータありき」の世界です。とくにRDB(リレーショナル・データベース。アクセスもそれに該当)では、相互に関係を持ったデータ(テーブル)群を土台として構築されます。 この土台に対し、UI(ユーザーインターフェース)を実現するのがフォームやレポートです。 フォームやレポートが適切に動くようにデータ群との橋渡し(選択、更新、追加、削除)をするのがクエリ。 従って 1.アクセスで何を処理したいか 2.それに使用するデータは何か 3.テーブル間の関係などに配慮しながらテーブルの設計 4.UIとしてフォームやレポートの作成(この段階でクエリを駆使します) 通常上記の流れは一回で終わらず、業務その他をこなしてゆく課程で、「あれもしたい、これもしたい」で拡大してゆきます。テーブルも増えるし、相互の関係見直しが必要だったり。
補足
なるほどです。おっしゃる通り、ちょっととらえ方が間違ってた ようです。とても勉強になりました。 ありがとうございました!!
- nikenike1
- ベストアンサー率44% (76/169)
私の経験上からの回答(というかアドバイス)です。 Accessの用途は 個人用→複数人用→中規模・・・ と徐々に広がっていくものです。慣れてきたら作成初期の段階で第3者にわかりやすく一般的な造りにしておくのが無難かと思います。 <1>テーブルやフォームをわざわざ作って・・・ ほかのユーザに使用してもらう点では良いと思います。 <2>テーブルやフォームを作成して組み立てていく場合・・・ 後者が正解です。 これは将来データ蓄積テーブルが外部データベース(別のMDBやオラクルとかのテーブル→※)になった場合、思わぬ上書きや削除から蓄積部分を守るため、一般的にデータ蓄積部分と入力部分は分けて作ります。(さらに検索結果を表示する場合も別テーブル・フォームにするのが一般的です。) ※複数人でMDBを使用する場合データ蓄積テーブルを同時に開くと不整合やロックがかかるため、データ蓄積部分とデータ操作部分を分ける手法です。
補足
ものすごく分かりやすいアドバイスありがとうございました! 非常に勉強になりました。 ひとつお聞きしたいのですが、「さらに検索結果を表示する場合も別テーブル・フォームにするのが一般的です。」とありますが、蓄積テーブルを基に検索フォームを作らないほうがいいってことですよね? そうなると、蓄積テーブルと同じテーブルをどこかのタイミングで作成しておけばいいのかなって思うのですが、そのやり方のヒントなど教えていただけませんでしょうか。 申し訳ありません。
お礼
再度ありがとうございます!!! リンク先ともて分かりやすかったです。 書いてくれた事を一つずつ繰り返しやってみます!! ご丁寧にありがとうございました(__)