Q.本当に初心者なんです、なにから勉強していいのか、いやどうやったら Access を使えるのかわかりません・・・

* Amazon Access 関連書籍情報
フツーの事務職のつもりで入社、無事半年が過ぎました。仕事にも慣れたし、そろそろカレシでも・・・
と思っていたら、課長がいきなり「ちょっと、これで顧客管理ソフト作ってくれない?なにカンタンさ、なんかボタン1つでできちゃうらしいよ。きみならできる!」
とか言うんで作りはじめたら、なによコレ、Excel や Word と全然違うじゃない!!まるでわかんない!!!
課長はアタシがぱーだからできないと思ってるし毎日残業してるのに全然進歩しないし、これじゃカレシどころか、友達とも遊べないじゃなーい!!!なんとかしてーっ!!
COBOL は経験あるんです、ええ汎用機ですね。15 年ほど。データベースだってばりばり使ってました、ええ汎用機の。ですから自信はあったんですよ。データベースソフトだって言うから。
でもなんですか?シーケンシャルリードとかランダムリードとか、どうやったらいいんですか??
それに、画面が開いたらまずどこの処理が動くんですかね? COBOL だったら上から順々に処理していくからソース見やすかったのに・・・基本思想からしてわかりませんよ。こんな状態じゃ設計もろくにできません・・・なんだかSEとして自信なくなってきちゃいました・・・
・・・はい。(^^;)みなさん大変だと思います。なぼも大変でした。
なにしろ、世の中には「Access はカンタンなデータベースソフト」だという噂が広まってますから。しかし、データベースの概念をご存知ない方にいきなり独自のソフトを作れといっても無理な話です。また、いままで汎用機で開発をされていた方にはとっつきにくいでしょう。心痛お察しいたします。
ここで、フォームの機能だとかクエリーの作り方だとか説明しても仕方ありません。そういうのはヘルプに任せるとして、なぼは「どこをおさえて勉強したら効率がいいか」を説明したいと思います。
★まずWindowsの基本操作を覚える
↑いまどきこんなもん幼稚園で教えてるわ!!歴史感じるわー
Windows 上で動くソフトは、だいたいみんな同じようなキー操作、似通ったメニューバーで構成されています。(だいたい、ですので、たまに逆らっているソフトもありますし、状況によってはあてはまらない場合もあります)
一度覚えてしまえば、他のソフトでも応用が効きます。他のソフトの経験がある方は、カンを働かせ「ひょっとしてこうかな?」といろいろいじくってみましょう。壊してしまうかも、と恐れることはありません。
ちゃんとバックアップをとっておけばいいんですから。(そのためにも、まずエクスプローラは覚えましょう。)
サンプルデータベースを使ってみる
Access には、NorthWind というサンプルデータベースがついてきます。これはなかなかの優れものですよ
。凝った作りをしている部分もあるし、シンプルにまとめてある部分もあります。
大変参考になるはずですので、中身を解析しようなどと思う前にまず、いじってみること。そして、「これどうやっているんだろう?」という疑問がわいてきたら、それを解決すべくデザインを見てみればいいのです。
★ウィザードを利用する
Access95からですが、「データベースウィザード」というものができました。写真管理だとか、家計簿だとかの mdb ファイルを自動で作ってくれる、というやつです。たとえ自分の作りたい物と完全一致でなくても、ちょっと作ってみると面白いかもしれません。サンプルではわからなかったことが勉強できるかも。ただ、これはよくエラーを出すので、あまりアテになりませんが・・・
データベースウィザード以外にも、「ボタンウィザード」とか「クエリーウィザード」「レポートウィザード」「フォームウィザード」など、便利なウィザードはたくさんありますので是非使いましょう。
特に「ボタンウィザード」は、できあがったイベントプロシージャを見ると意外な発見があるかも!?
日本人は、アメリカ人と比べるとデザインに凝る癖があるようですが、デザインに凝るのは後の話、まずウィザードで作ったものだけでシステムを作り、使い勝手の悪い部分を直すようにしてみては?
★プロパティ、メソッド、オブジェクト、イベント を理解する
Access は、「オブジェクト」で構成され、それぞれに「プロパティ」「メソッド」があります。ないものもあるかもしれないけど、まぁ大抵あります。
また、ユーザーが何か操作をした時に「イベント」が起こります。
「モジュール組まないから関係ない」と言う方も、「プロパティ」だけは覚えておきましょう。でないと、ある部分の文字の種類や大きさを変えたい、といった時にももうどうしたらいいのかわからなくなります。
さらに「イベント」を覚えておくと、「ここをいじったらこっちを変えたい」といった高度な技(?)が使えるようになります。
「プロパティ」とは「性質」という意味だそうです。たとえば、フォームのプロパティを変更することにより、背景色や文字色、タイトル、大きさ、高さなどを変更できます。
テキストボックスやコンボボックス、詳細セクションやフォームヘッダー、フッターについてもプロパティがあります。そのコントロールを識別するための名前も、プロパティで設定します。
もし、フォームデザインでどこか変更したい、と思ったらフォームのプロパティのヘルプをかたっぱしから読んでみましょう。
「メソッド」とは、「命令」というような意味みたいです。メソッドはプロパティと違って「このコントロールに対してなにかをしたい!」という時に使います。
たとえば、「このコントロールを入力できないようにする」には、「プロパティ」(使用可能・Enableプロパティ)を使いますし、「このコントロールにフォーカスを移動する」には、「メソッド」(SetFocusメソッド マクロの「コントロールの移動」アクションでも可能)を使います。
もちろん、「入力できないようにしてある」コントロールに「フォーカスを移動」しようとするとエラーになります。
「イベント」とは、「割り込み」です。こう言えばコンピュータの勉強をしたことのある人には解っていただけるでしょうが、そうでない方には解りませんね。(^^;)
「×××をした時、これをしたい」という場合の、「×××をした時」を現すのがイベントです。
たとえば、「商品コードを入力したら、商品名を表示したい」これはよくある要求ですね。これを実現しようとした場合、「商品コードを入力したとき」起きる「イベント」を探すことからはじまります。
まず、商品コードをキーボートから入力しようとした時、最初に「商品コード」というコントロールにカーソルを移動しますね?その時最初に「フォーカス取得時」イベントが発生します。
それから、キーボードを叩いてコードを入力しますね。この時には「キークリック時」「キー入力時」「キー解放時」等のイベントが発生します。それぞれの発生タイミングは微妙に違うので、ヘルプでよく確認しましょう。
入力しおわったら、おそらく次のコントロールに移動しようとするでしょう。その時には「更新後処理」「フォーカス喪失時」イベントが発生します。
「更新後処理」イベントは、そのコントロールの内容が変更され、フォーカスを失おうとする時に発生します。内容が変更されなければ発生しません。詳しくはヘルプで確認してください。
さて、この場合、商品名を表示するのに一番いいタイミングはどこか、考えてみましょう。
フォーカス喪失時でもいいのですが、これだと内容が変更されてもされなくても起きてしまい、無駄なデータアクセスが発生しますね。
一番いいのは、「更新後処理」イベントと思われます。実際、このイベントが一番多く使われますので、せめてこれくらいは覚えておきましょう。
このように、「なにかのタイミングである処理をしたい」といった場合に不可欠なのがイベントです。最適なイベントで処理を行わないと思わぬ結果を招くので、どのイベントがどんな時に起きるのかは把握しておいたほうがいいでしょう。
「オブジェクト」とは、「ある処理をするための部品、かたまり」といったイメージでしょうか、(正式には違うんでしょうけど、とらえ方として)テーブルもクエリーもフォームもレポートもモジュールも、オブジェクトなのです。これは日本語で説明するの難しい!(^_^;;)
おまけに「OLEオブジェクト型」なんていうデータ型があったり、ActiveXオブジェクトなんてのがあったり、もうわけわかりませんな(^^;;)
Access での最上位オブジェクトは、「Application」です。(VB から DAO だけを使用する場合は DBEngine になる)これはモジュールを組まない人は意識する必要はありませんが、一度ヘルプで「Applicationオブジェクトの概要」コンテンツを見て、どんなオブジェクトがあり、その中にはどんなオブジェクトがあるのか、たどっていくととてもためになります。
また、オブジェクトの集まりを「コレクション」と呼びます。コレクションは、下位のオブジェクトを一度に取り扱うためのかたまり、とでもいったらいいのでしょうか。オブジェクトとほぼ同じ位置づけにコレクションがあるので、ややこしくてわけわかりませんが、Forms はコレクション、Form はオブジェクトらしいです。
とりあえず、モジュールを使わない人はコレクションの便利さを実感することはできないので、「コレクションはオブジェクトの集まりなのねー」程度に覚えておきましょう。ヘルプを引くときに知っておくと便利です。
★ヘルプは隅から隅まで読む
とにかく、ヘルプは読みましょう。これは絶対です。
・・とは言っても、1枚1枚ページをめくるように読むことはできないので、読みたい場所にたどり着くことができないことが多いですね。
ヘルプの読み方にはコツがあります。
- 検索する場合、キーワードを変えて最低5回は検索する
1つのキーワードであきらめてはいけません。「コントロール」でだめなら「Control」、「Controls」、それでもだめなら1つ上位のオブジェクト、たとえば「フォーム」、「レポート」などからたどっていく、という方法があります。単純な検索では行き当たらないページに当たる場合がありますよ。 - 「フォーム」のことが知りたい場合、「Formオブジェクト」コンテンツをまず読む
「Formオブジェクト」コンテンツには、フォームのコントロールを外部から参照する記述の方法が載っていますね。これは覚えておきましょう。
クエリーからフォームの値を参照したい、レポートにフォームで指定した内容を印刷したい、いろいろな場合でこの参照式を使いますので。
また、「××××オブジェクト」というコンテンツの上の方から、そのオブジェクトが持つプロパティとメソッドの一覧を見ることができるようになっています。そこから全プロパティ、全メソッドのヘルプに目を通すことをお勧めします。
いま役にたたなくても、きっといつか「そういえばこういうプロパティがあった」と思い出すことがあるはずです。
★ マイクロソフトの技術情報を活用する
マイクロソフトの技術情報は、みなさんのフィードバックから作られています。
電話に出ていて、よく受ける質問、電話ではうまく説明できないものの資料があれば一発解決する質問、などなど、みんなが知りたい、必要だと思っている内容しか載っていません。
今のサポートって、トラブルシュート以外の内容(あれやりたい、どうすればできる?的な how to 質問) は門前払いされ、受けつけてくれません。そもそもマイクロソフトに聞くことができなくなっているのです。
そもそも論として、how to 的な質問に対してメーカーが素晴らしい情報を提供してくれるかっていうとそんなことは全くなく、ヘビーユーザー的な皆様が Qiita とかに投稿してくれる情報のほうがずーーーっと有益なんだよねー。
「わからないことは調べろ」、でも、調べかたすらわからないのが初心者というものです。質問したくとも、その方法すらわからない。
これでは使いこなすどころか勉強することすらできません。ただ、「何もわからない」と聞かれても、答えることができないのもまた事実です。
まず、「Access とはどういうソフトなのか」「自分は Access を使ってなにがしたいのか」を把握することから始めましょう。
道の方向もわからなくては、どこへもたどりつくことはできません。方向を決めるのは、あなた自身なのです。