<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--「今日の日付」を表示させたい



■「今日の日付」を表示させたい

Date関数というやつがあります。パソコン内部の時計から今日の日付を拾ってきてくれる関数です。

なんか、適当なテーブルをひとつ用意してください。練習ですからなんでもいいですよ。例えばこんなテーブルを作って、適当にデータ入れといてください。
このテーブル使ってチャンレジしてみましょう。




もし、クエリの中で使うとしたら・・・。まずこんな感じで書くとします。
書けたら、とりあえず試してみましょう。左上の「データシートビューへの切り替えのツールボタン」をクリックします。
このタイミングで、Date関数は今日の日付を拾ってきます。

でもーーーこれってあんまし意味ないですよね。各行に今日の日付が・・・。でも、ちゃんとクエリでも動きますからね。まずはそこんとこ確認していただいて。
じゃあ、どういうときDate関数って活躍すんでしょうか。




たとえば、「何日経過しているか」なんてことを計算させてやろうか、と思ったときなど、使えるかもしれないですね。

式1:って、勝手についちゃってると思いますけど、半角のコロンの右側をいじってみましょう。


Date()-日付

「日付」っていうのは、基のテーブルの中のフィールド名ですよね。「日付」って名前のフィールド、あるでしょう。そこに入ってるデータを引き算しちゃおうってわけです。ほんとは、半角のカギカッコで囲って入力してやるべきなんですけど・・・多分ちゃんと「フィールド名のことですね」ってわかってくれて、後で自動的に半角のカギカッコがつくと思います。
式の意味としては、「日付」っていうフィールドの中に入力されている年月日を、「今日」から引き算してるんですね。

と、これを実行すると・・・
今度は、「このデータが発生してから今日まで、何日経ってるのか」ってことがわかるようになります。なんか伝票系のシステムで、「何日経過しているか」とか「何日超過しているか」とかいうことを知りたいとき、使えそうな気がしません?

式1っていう項目名になっちゃうのがいやなら、書き換えておくといいでしょう。

ついでに、「日付」フィールドも並べておくといいのかもしれないですね。

じゃあー、このクエリせっかくなんで、なんか名前を付けて保存しておきましょうか。
「クエリ1」とかでいいですよ。練習ですからね。なんか適当に名前付けて保存しておくとしましょう。




じゃあ、この関数、フォームやレポートではどう活躍するのかな?となると・・・。

まあ、まず、上のクエリを基にしたフォームやレポートを作ってやれば・・・ってのはわかりますよね。
じゃあ、とりあえず、「オートフォーム機能」を使って作ってみましょうか。




テキストボックスの大きさとか調節しないと不恰好ですけど・・・とりあえずこんな感じのフォームができました。
クエリの中で計算させている「経過日数」ってフィールド、ちゃんとフォームから見ても答え出してくれてますよね。

このフォーム開くときに、ちゃんと関数が働いて、それぞれ答えを出してくれてるんですね。で、対応するテキストボックスの中に答えが出てくるわけです。

たとえば、フォーム上からデータを書き換えると・・・。
Enterキーを押して他のところにカーソルが移動した瞬間に、再度日数の計算がされて新しい答えが出てくると思います。




んでは別の使い方を・・・。

フォームのフッター部分を、緑色の線のあたりをドラッグして引き出して、テキストボックスをひとつ作りましょう。

で、そのテキストボックスの中に、Date関数を埋め込んでみましょうか。
そうすると、このテキストボックスの中には、常に常に「今日の日付」が表示されるようになります。

ほーら。ね?

これじゃなんか味気ないなぁ、という場合は・・・。
関数の使い方、ってわけじゃないですけど、一工夫してみましょうか。




たとえばですねぇ・・・。
こんなふうにしてみると・・・。

=”なんか書いてみる” & Date()

ダブルコーテーションで囲んだセリフを、&でDate関数とつなげてやります。

と、こんなふうに、ひとこと加わった形で、今日の日付が返ってくることになります。

「なんでダブルコーテーションで囲むか」、ってことは、皆さん、オッケーですよね。
囲まないと、「今日は」っていう名前の関数か、フォームとかテーブルの名前だと思われちゃうんですよね。んで、そんな名前のもんはどこにもないから、勝手にエラーとかにしちゃうんです。Accessって。「今日は」つったら「今日は」に決まってるじゃないですかねぇ。でもねーわかんないんですよ。気を利かせてダブルコーテーションで囲んでやって、&でつなげてやってください。
こういうのがよくわかんないんだよなぁ・・・という方は、とにかくいろいろ作ってみてください。難しいかもしれませんが、無作為にダブルコーテーションが必要になるわけじゃなくて、かならず規則性があります。その規則性さえつかんでしまえばそんなに難しいことはないはずなんです。
とにかく焦らず、難しいわからないと思い込んでしまわず、とにかく少しずつ数こなしてみてくださいね。




さらにさらにもう一工夫・・・。関数の後ろにも、なんか文字をつけたいなぁと思ったら、こっちもダブルコーテーションで囲んで、&でつなげてあげましょう。

ありゃりゃ、テキストボックスちょっと大きくしないと、入りきれなくなっちゃったですね。適当に広げてやってください。

表記を「8月24日」ってしたい場合は・・Format関数という関数と組み合わせるといいでしょう。こいつは、日付とか数値型のフィールドの値の書式をいろいろ工夫するときに活躍する関数なんです。

="今日は" & Format(Date(),"m月d日") & "です"

ちょっと複雑ですけど・・・。Date関数の外側にFormat関数があるんですね。

と、こんな感じになります。
なんかいろんなことに使えそうな気がしません?
いろんな表示書式がありますから、Format関数のヘルプも、一度紐解いてみてください。

後は、テキストボックスの色や立体表示などを調節したり、テキストボックスのプロパティを調節して書き込みできなくしたり(使用可能とか編集ロックとかいうプロパティが)すれば、なんかもっと雰囲気出てくると思います。

レポートでも、同じようにテキストボックスを作って、そのコントロールソースにこう書き込んでやれば、印刷物には「今日の日付」がプリントされてきますよ。



(オシマイ)