<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--関数ってなんだ?



■関数ってなんだ?

今日は「関数」について、いろいろお話しますねこのコーナーでは、「関数とは何か???」ということについていろいろお話していこうと思ってます。
といっても、「裏技集」とか「技術情報集」みたいな高度な技をご紹介するわけじゃなくて、ほんとに基本的なとこ・・・をお話していきます。
また、「関数」の使い方だけにこだわらずに、「関数」を含んだいろんな作り込みなどもあわせてお話していこうと思ってます。
「関数」ひとつひとつの使い方を知る、というのではなくて、「こういうことができる関数はないものかな?」という角度の考え方ができるようになるよう、「関数」そのものの理解を深めていってくださいね。
で、このコーナーでまず基本的なことを把握していただいてから、このコーナーの下にぶら下がるようにいくつかの関数をご紹介してます。

「関数」って、何なんでしょう・・・。ソフトウェアや開発元メーカーによって、考え方がちょっと変わってくるとは思うんですけれど、とりあえず「何かの処理をするためにあらかじめ作られたちっちゃなプログラム」って思っていただいてよいと思います。ありがちな処理は、あらかじめソフトの中に関数が用意されてることも多いですね。そういうのをうまく活用していくことで、処理が楽になったり簡単に便利な機能を作りこむことができたりするわけです。



といっても、いろんな関数がいっぱいあります。
で、Accessのヘルプをたどってみると、関数名順に並んで解説が載ってます。
ちょっと覗いてみてください。
メニューバーの右端の「ヘルプ」ってところをクリックして、
  「VisualBasic言語リファレンス」→「関数」とたどっていきます。

と、関数名ごとに分類されているのがわかりますよね。たくさんありますねぇ。


Accessの中で使うことのできる関数(あらかじめ用意されてる関数ってことで、組み込み関数なんて言い方をすることもあります)の一覧です。

つまり・・・関数の名前を知らないと、ヘルプで詳しいことを知ることが難しいんですね・・・。キーワード検索とかうまくやれば、機能引きみたいなこともできないでもないと思いますけど、思ったような処理をするための関数を見つけるの、なかなか大変だと思います。

でも、関数をうまく使いこなしていくためには、このヘルプとうまく付き合っていく必要があるんですよ。これを読まないと始まらないんです。
時間のあるときに、「質問(A)」とか「キーワード(I)」とかをいろいろいじってみて、ヘルプにもなれちゃっておいてください。

これらの関数を全部熟知する必要は全然ないですから、よく使うもの、便利そうなものをいくつか知っておいて、後はそのときそのとき調べればいいんじゃないかって思います。
今回は第1段として、知っておいて便利そうな関数をいくつかご紹介していきます。すぐ役に立つものがあるといいんですけれど・・・。

はじめに、これだけは守ってください。「ヘルプを読むこと」
どんな関数を使うときでも、その関数の基本的な使い方、機能など、必ずヘルプを読むことです。
「ヘルプは読む気がしなくて」とか「読んでも意味がわからないから」とか言う方もいらっしゃると思いますが・・・本心はどうであれ、とにかく新しい関数などは、必ず一度はヘルプを読んでおくようにしましょう。「自分で調べろ」って言う意味じゃなくて、ヘルプっていうのは、Accessを利用する人たちの共通項だからです。難しいこともたくさん書いてありますから・・・内容を理解するしないは別にして、とにかく、新しいこと、わからないことがあったらみんなまずヘルプを紐解いているんだ、という意識を持って取り組んでみてください。


■関数の基本的な使い方■

あまり比較するの好きじゃないんですけど・・・MS-Excelのような表計算ソフトだと、あらかじめ用意されている関数は、セルに直接入力して使います。

=関数名(答えを得るために必要な情報があれば入力、なければカッコだけ)
で、Enterキーなどを押すとかしてカーソルがセルから離れた瞬間に、関数が動いて答えを獲得してセルの中に表示します。これがExcelなど表計算ソフトでの関数の考え方です。関数は、セルの中で動きます。

 



ではAccessはどうなんでしょう。

一見、Accessの「データシートビュー」というのが、Excelのシートと似ているので、1マスをセルに見たてて直接関数を入力して使おうと思っても、これは動きません。
まさかほんとにExcelといっしょくたにしちゃってる方はいらっしゃらないとは思いますけど、これ、セルじゃないですからね。
データベースに「セル」なんて考え方はないです。表計算ソフトの考え方なので、データシートビューと表計算ソフトのシートを同じように考えてる方がいらしたら、それはまったく別もんって考えてくださいね。

テーブルのデザインビューでも、関数など明記するプロパティはありません。
この時点で、Accessって不便、と考えている方に、はたしてこの先うまく解説させてもらえるかどうか自信がないんですが・・・。Accessに限らず、いわゆる「データベース」と呼ばれているもので、物理テーブルで関数を動かすことができるものなどないと考えてください。Accessに能力がないのではありません。テーブルとは、あくまでも「実データ」を置くところなので、表計算ソフトとは違うものなんだと考えてください。

じゃあ、Accessでは、関数というのをどういうふうに使うのか、というと・・・。

たとえば、こんなテーブルを作ったとします。
名前を「ばりばり」って言います。意味は特にありません。

で、こんな感じで↓データが入ってくるとします。

「関数が働く場所」の代表格といったら、まず、クエリで活用するって方法ですかね。

こんなふうにクエリのデザイン画面のなかで関数を入力すると、

データシートビューに切り替えたとき、あるいはこのクエリを基にしたフォームとかレポートを開いたとき、しかるべき場所にしかるべき答えを出してきてくれます。

それから、あとは、フォームとかレポートの中でも活躍することがありますね。
テキストボックスなどの「コントロールソース」プロパティに直接関数を書き込むと、そのフォームやレポートを開いたときに、関数が働いて答えを取ってきてくれます。

と、結果はフォームビューに切り替えたとき、あるいはフォームを改めて開いたときに表示されます。
デザインビューの状態では、答えはでませんので、細かいことですけど関数が値を獲得してくるタイミングはフォームやレポートを開いたときだ、という感じでとらえてください。

後はマクロの中で使ったり、プロシージャの中で使ったりしますけども、わたしのサイト読んでくださってる方で「プロシージャの中での関数の使い方を教えてくれ」なんて人はいないと思いますんで、まずは「クエリの中」と「フォームやレポート内のテキストボックスのコントロールソース欄」の2方向でお話してみます。
とにかく、「いろんな関数があって、いろんな使い方があるなぁ」ってことをつかんでいただければな、って思います。がんばりましょう!


関数の基本的な構造は


 関数名(引数)


です。クエリで使うときは、そのまんま書けばいいんですけど、テキストボックスのコントロールソースに書くときは、=をつけて式であることを示します。
引数というのは、この関数を動かして何か答えを得るために必要な情報で、関数によって決められてます。
どういう関数のときどう入力するのか、ってことは・・・ヘルプとか見てその都度調べなくちゃならないです。

いろんな関数があります。使い方はひととおりではありません。どういう関数があるのか、また、Accessの中ではどんなふうに関数を使っていくことができるのか、その辺の理解を深めて、みなさんのデータベースの中で活用していってくださいね。ここでは、関数それぞれひとつひとつの使い方ではなくて、たくさん用意されている関数をどうやって活用していくのか・・・その第一歩をお話していきます。
関数の使い方そのものも、いろいろ覚えなくちゃいけないことがあると思いますが、一番難しいのは・・・その関数を「どうやって使うか」ってところだと思います。やり方はひとつじゃないんですよね。
だからこそ、いろんなパターンをあらかじめ見ておいて、いざ、ってときによりよい方法を見つけることができるように・・・・。



(オシマイ)