| <HOME <お願い事項 <Access2000 TOP <Access97 TOP <サイト内検索 | ||
| MS-Access2002チョ〜入門部屋>基本をマスターしよう | ||
では、このフォームは保存して閉じましょう。
今作っていただいたのが「単票形式」のフォームです。
1画面に1レコード分表示するタイプのフォームですね。
どういうときにこういうフォームが役立ちそうでしょうか。
皆さんの身近にあるデータベースなどを題材にして、少し考えてみてください。
で、次にお話するのは、「表形式」というタイプのフォームです。
まあ、フォームはフォームなので作り方とか操作の仕方は「単票形式」と変わらないんですが、ちょっと構造が違うので、作ってみて見比べてみましょう。
うーん、そうだな、これはもう、手っ取り早くオートフォームを使って作ってみましょう。
フォームを新規に作成します。
で、オードフォーム:表形式を選び、「社員テーブル」を選びましょう。

すると、あっという間に何だか↓こんなのができますよね。
これが、表形式のフォームです。

1行1レコードという形で表示します。
単票形式とどう違うか、じっくり観察してみてください。
さてこの表形式のフォーム、どういうデザインになっているかというと・・・。
デザインビューに切り替えてみましょう。デザインビューへの切り替えは、左上の青い三角定規ボタンですよ。

このように↑、1レコード分のデザインが決まっているわけなんですね。
で、フォームを開いたとき、基になるテーブルやクエリのレコード件数分、繰り返して表示する形になります。
なので、どれかひとつ、テキストボックスの色とか大きさとか変えるだけで、全レコードのテキストボックスの色や大きさが変わることになります。非常にお手軽です。
逆に、どれか1行だけテキストボックスの色を変えたい、と思っても、そうはいきません。
MS-Access2000から「条件式書式」という機能がついたので、多少は変化をつけられるようにはなりましたが、基本的には書式は全行全部いっしょになります。
デザインビューでの操作方法は、単票形式のときと同じです。
テキストボックスの大きさや色など、お好みで調節してみてください。右端の薄いグレーと濃いグレーの境界線が、フォームの境目ですのでここをドラッグすればフォーム全体の大きさが調節できます。

プロパティもいろいろと操作してみてください。単票形式とほとんど同じですが、「表形式ならでは」の設定ってのもありますから、いろいろ見ておかれるとよいです。
うーん、そうだな・・・表形式のフォームの場合は、垂直スクロールバーは出すようにしておいた方がよいかもしれませんね。
よっぽど「必ず10件しか表示しないから」とかいうときは別ですが、開くまで何件くらい表示大将のレコードがあるかわからないというのがRDBの基本なので、スクロールバー自体は出るようにしておいた方がよいと思いますよ。
フォームの用途にもよりますが、たとえばデータの一覧表みたいな感じで使ってくフォームだとして、ここから新規にレコード追加をさせるかどうかということをちょっと考えてみてください。
新規に何か1件入力するとしたら、ここに入力することになります。

え?2行目に行を挿入するにはどうしたらいいかって?
だめですよーそういう考え方は。いけませんよ。データベースは表計算ソフトではないのです。
今見ているこの表の形のフォームも、こういうデータシートビューっていうやつも、開くときあらかじめ指定されている並び順で並んだ順番なのであって、2行目に見えてるからといって2番目に入力されたレコードというわけではない。この感覚になれないと、MS-Accessの使い方を覚えたところで、データベース作りは前途多難です。
テーブルの場合(データシートビューで見た場合)は主キーにしているフィールドを基準にして並びます。
主キーがないテーブルは見た感じ入力順に並んで出てきますがそういう仕様になってるわけじゃありませんので当てにしないほうがいい。クエリの場合は「並び順」の指定をしてればその順番に並び、なければテーブルの主キーを基準に並びます。
フォームは、テーブルまたはクエリで指定されてる順番で、レコードを表示してるだけです。
2行目に見えてるからといって2番目に入力したレコードとは限らない。
なぜなら、レコード単位でものごとを見るからですよね。
それがデータベース的なデータの考え方であり、だからこそメリットもあるのです。
「一枚の大きな表があって、そこにデータが並んでいる」のではなくて、「小さなメモ用紙がいっぱい散らばってて、それが整列して表示されてる」のだと考えていきましょう。それが、「データベース」の基本です。
かなり長いことMS-Accessを使ってるという方でも、いまだに「データシートビューの途中に行挿入ができないのはおかしい」と言う人もいます。こんなこと言われるとちょっとぞっとしますが・・・・まあ、気持ちはわからないでもないです。
でも、その考え方じゃデータベースを活用することにはつながらない。MS-AccessもMS-Excelも、データを管理するための道具のひとつに過ぎないと思います。だから、メリットが感じられないなら、無理に使うことはない。理解しやすい道具を選ぶのもひとつの方法ですよね。
でも、もし、これからMS-Accessを使っていくなら、「表形式のフォームや、データシートビューで、新しくレコードの入力をするときは、一番下の空行に入力し、入力したレコードは主キーや並び順の指定によって後でしかるべく並び変わるもの」っていうのを、少しずつ理解していってください。
さて、で、この一番下の「空行」なんですけど、このフォームから新規にデータ追加するなら、なきゃいけませんが、単なる一覧表で、むしろココから新規にレコード追加とか修正とかされちゃ困る、見るだけにしてくれ、なんてことも、あるかもしれないですよね。修正は別のフォームからやってもらうとか。
そういうときのために、フォームのプロパティをひとつ、確認しておきましょう。
フォームのプロパティの出し方、オッケーですか?手っ取り早い確実な方法は、左上のグレーの四角部分(フォームセレクタといいます)をダブルクリックする方法ですね。

データプロパティの中に「追加の許可」というのがありますよね。

これを調節することで、「このフォームは○○専用」みたいな感じにできるんです。
ほかにも「更新の許可(テキストボックスから修正入力したりできなくなる)」、「削除の許可(このフォームからレコードの削除ができなくなる)」、「データ入力用(新規入力しかできなくなる)」と、いろいろなプロパティが用意されてます。
もっと細かい情報が必要な場合は、各プロパティにカーソルを置いた状態でF1を押してヘルプを参照してください。
「データ入力用」っていうのだけちょっと特殊かもわからないですが、後はわかりやすいですよね。
今日は「追加の許可」だけいいえにしてみましょう。
でもって、フォームビューに切り替えると、

一番下の空行、なくなってますよね。
これでこのフォームからは、新規にレコードを追加することができなくなったというわけです。
表形式のフォームを作るとき、この辺のプロパティが非常に役立つこともありますんで、ちょっと記憶に留めておいてくださいね。きっと後で活用できると思います。
ちょっとだけ横道にそれますが・・・・。
フォームの「レコードセレクタ」っていうところ(左端の、グレーのところ)を右クリックすると、「切り取り」っていうメニューが出てきます。これを選ぶと、このレコードを削除する、っていう操作になります。

フォームの「削除の許可」っていうプロパティは、これをさせないための(メニューは出てきますが)プロパティです。
レコードセレクタを隠しちゃえばよいかもわかりませんが、まあ、フォーム全体でもいちおう設定しておこう、って感じですね。
テーブルのところでもちょっとお話しましたが、レコードの削除は本当に削除されてしまいます。
確認のメッセージに応答したら、それでこの世からなくなります。
それでもよければ削除してしまってもよいですが、よく使われる方法として「削除はしないけど見えなくする、そのレコードが出てこないようにする」なんてのをよくやります。
こういうのはいろいろと工夫が必要なので、MS-Accessの操作に慣れてきたら、じっくり研究してみましょう。
んじゃあ、このフォーム、何か適当な名前をつけて保存してください。
そうだなぁ。「社員一覧」とでもしますか?
| |