Q.本当に初心者なんです、なにから勉強していいのか、いやどうやったら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オブジェクト」コンテンツには、フォームのコントロールを外部から参照する記述の方法が載っていますね。これは覚えておきましょう。
    クエリーからフォームの値を参照したい、レポートにフォームで指定した内容を印刷したい、いろいろな場合でこの参照式を使いますので。
    また、「××××オブジェクト」というコンテンツの上の方から、そのオブジェクトが持つプロパティとメソッドの一覧を見ることができるようになっています。そこから全プロパティ、全メソッドのヘルプに目を通すことをお勧めします。
    いま役にたたなくても、きっといつか「そういえばこういうプロパティがあった」と思い出すことがあるはずです。

    ★ F1キーを使いこなす
    Office 製品では昔、F1キーを押すといるかが出てきました。懐かしいですね。
    今でも F1 キーを押すとヘルプが表示されるはずです。どんどん質問してみましょう。ヘルプはそれなりに頑張って、該当すると思われる内容をいくつかピックアップして表示してくれます。
    また、デザインビューで「このプロパティの意味を知りたい」と思った時は、プロパティウィンドゥでそのプロパティにカーソルを置き、F1キーを押すだけでそのプロパティのヘルプを見ることができます。
    その他、わからないことがあったらとりあえずそこをクリックして、F1キーを押してみましょう。
    「関連項目」「使用例」は必ず見るキーワードで検索したページが、思っていたような内容でなくても、そこであきらめてはダメです。
    なぜか、キーワード検索でHITしたページよりも、そこの「関連項目」の中に目指す内容がある場合が多いのです。(^^;;)
    また、「使用例」を見たら、知らないプロパティやメソッドを使っていて、そっちがすごく役に立ってしまった、ということも往々にしてあります。
    色が変わっていてアンダーラインが引いてあるようなところも、もらさずクリックしましょう。
    ...でもなー...Access2000 のヘルプ、死ぬほど使いにくいんだよね...(-_-)

    ★ マイクロソフトの技術情報を活用する
    マイクロソフトの技術情報は、みなさんの質問から作られています。
    電話に出ていて、よく受ける質問、電話ではうまく説明できないものの資料があれば一発解決する質問、などなど、みんなが知りたい、必要だと思っている内容しか載っていません。
    実際、サポートによせられる電話の4割はここで解決します。これを利用しないテはありません!みなさん、がしがし利用しましょう。
    サポート料を払わずにタダで有効な情報が取得できるのですから見逃すテはありませんよね。


「わからないことは調べろ」、でも、調べかたすらわからないのが初心者というものです。質問したくとも、その方法すらわからない。
これでは使いこなすどころか勉強することすらできません。ただ、「何もわからない」と聞かれても、答えることができないのもまた事実です。
まず、「Accessとはどういうソフトなのか」「自分はAccessを使ってなにがしたいのか」を把握することから始めましょう。

道の方向もわからなくては、どこへもたどりつくことはできません。方向を決めるのは、あなた自身なのです。

*そんなあなたにお勧め書籍*

もしあなたが「Excel でのデータ処理は極めた!次は Access だ」と思っていらっしゃるなら、この本がおすすめ

Excel+Access 2007 連携スパテク390

どんなモノを作りたいなら Excel が向いていて、どんなモノなら Access が便利なのかを例をあげて説明してくれているので、「あーこれ Excel で作ろうとして大変だったんだよねー」と共感できればしめたもの。
あとは、Access なら便利なモノを実際作ってみればいいのです。

かなり入門レベルなので、VBA で Excel と Access の連携を考えてる人には物足りないかもですが、逆に「あ、別にコード書かなくてもできたんだ...」って発見もあるかもですね。

トラックバック(0)

トラックバックURL: http://www.naboki.net/movabletype/mt-tb.cgi/33