<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--用語集を作ってみる
  1 > 2 > 3



ここでは、いわゆる「用語集」みたいなものを作っていきます。
ひとつの大きなテーブルの中に、データを追加したり検索して該当するデータをフォームに表示させたり、という、非常にシンプルなデータベースを作りながら、ひととおりおさらいしていきましょう。

もし、皆さんが今現在、用語集みたいなデータベースを作成しなくちゃならない状況にあるのであれば(そんな人いないか)、以下の手順を見ていただきながら挑戦していただけるんじゃないかと思います。とりあえず同じ操作をひととおりやってみて、それから実務に活用してみよう、って場合は・・・いつもいつも例題がアホくさくて申し訳ないんで、今回はちょっとまじめな用語集を作ってみようと思いました。

んでもまじめなの思いつかない・・・ので、MS-Access2000のヘルプの中にある「用語集」をちょこちょこコピーしてテーブルを作ってみました。
ですので、このコーナーでは、MS-Accessヘルプの内容を一部転載して使用します。

このコース内でのデータベース作成の題材として使用するだけにとどめ、他のことには使用なさらないようお願いいたしますね。


ではぼつぼつまいりますか。

まずは、用語と解説がいっぱい入るテーブルを作ります。ここにデータが入って、ここからデータを取り出すイメージになりますね。

こんな感じの↑テーブルを作ります。テーブルの名前は[用語集]にしました。
いちおう、このテーブルの中にはダブった用語が入ってこないように・・・と思ってますので、主キーなるもんを設定するつもりですが、もしかしたら・・・用語名称は同じでも解説が二通りある、なんてこともあるかもしれないですよね・・・。なので、[用語]っていうフィールドには同じ内容の用語が複数ダブって入ってくる可能性がある・・・けども、それらはそれぞれ異なるデータとして扱う、って意味になります。よね?たぶん。

たとえば下の例でいくと↓、「コンボボックス」って二通り解説を載せたいんですけど用語名としては「コンボボックス」なんですよね。

用語名は同じでも二通りデータが存在する・・・で、テーブルの中としては、このふたつはきちんと区別をして扱いたい場合。。。そんな場合は各レコードを識別できるような、重複しない値を持つフィールドをひとつ設けるのです。
主キーって、そういう意味ですよ。「主キーってつけなくちゃいけないんですか??」って、疑問に思うならつけなくてもテーブルは作れちゃいます。

でもね、データベース全体で矛盾したデータが入ってこないよう、矛盾した処理にならないよう、テーブルの中にはレコードを識別できるフィールドをひとつ、必ず設けるように設計していきましょう。それが主キーです。決してみなさんのためではありません。Accessが困らないように、主キーは設けるのだ、と、そんなふうに考えてください。

IDは、異なる番号がつけば別に何番でもいいのでAccessにおまかせ、ということであれば、オートナンバー型のフィールドでもオッケーです。でも、もうご存知とは思いますけど、オートナンバー型のフィールドというのは、自分で入力することができないので、好きな番号をつけることはできません。いろいろ・・・自由が利かない種類にフィールドではありますので、IDなんてフィールド、きっと永久に見ることはないだろう、なんか番号がついてればいい、というときに用いるもんだと考えちゃってください。
あとはお好みですけど・・・わたしはあんまり好きじゃなかったりして<オートナンバー型

[用語]はふつうのテキスト型でオッケーだと思います。
テキスト型というフィールドは、最大255文字までです(半角で)。でも、基本値は50文字ですんで、50文字を超える用語がある場合は、設定しなきゃならないプロパティがあります。
ココですね。↓フィールドサイズというところ・・・。

たぶん、ただテキスト型のフィールドこしらえただけだと、50ってなってると思います。こいつを増やしてやらないとなりませんな。最大255桁です。詳しくはヘルプ見てくださいね。上の図でいくところの、255って数字入れたところにカーソル置いた状態でF1キー押せばヘルプ出ますから、一度確認してください。
[解説]は、たぶん長い文章になるんじゃないかと思うんでメモ型にしました。最大64kbです。それ以上になりそうな場合は・・・他の方法を考えないといけなくなっちゃいますが、とりあえず今日のところは、64kbでおさまるような感じでお話させてください。
Windowsのアクセサリ「メモ帳」で開くことができる文字数、ってことになりますか<64kb

あとは、検索用に使うフィールドをひとつふたつ設けます。
今回は、「あ行」「か行」「さ行」・・・という具合に絞込みができるようにしていこうと思います。が、しかし、But Also、漢字とか、カタカナとか、日本語って文字の種類が多種多様ですよね。[用語]の中の入力内容だけでは、その用語が「あ行」なのか「か行」なのか、コンピュータには判断できません。
コンピュータがちゃんと絞り込めるようなフィールドを検索用にひとつ設けてやるのがポイントです。

[出典]っていうのは、まあ、この解説はどこから引用してきたのか、ということがわかるように設けたフィールドで、今回は存在しているだけで特に使わない予定です。

と、中身はこんな感じになります。

いちおう、

 ID →主キー
 用語
 解説 →メモ型のフィールド
 検索用 →検索用。「記号」 「あ」 「か」 「さ」 「た」 「な」 「は」 「ま」 「や」 「ら」 「わ」 
       のいずれかの文字が入る

この部分だけ同じような感じであれば、データの内容は皆さん個々にお任せします。

で、
もし、ご自分で適当な用語集が用意しきれない・・・ということでしたら、テキストファイルをご提供しますんでそいつをインポートして使いましょう。
ひとつのフィールドに入る文字数が多いんで超わかりにくいんですけど、ファイルの中身はこんな感じです。よーく見ると、半角のカンマで、フィールドとフィールドの区切れを識別できるようになってます。

こいつ↓をダウンロードして使ってください。
[yougo.zip]
zip形式の圧縮ファイルにしてあります。なんか解凍ツールを使って解凍して使ってください。
(解凍すると、yougo.txtという名前のテキストファイルになります)
苦労して作ったんですよぅ・・・。大切に扱ってください。




簡単にインポートの手順を書きますので、挑戦してみてください。

メニューバー[ファイル]→[外部データの取り込み]→[インポート]を選びます。
インポートするファイルの種類を「テキストファイル」に変更し、ダウンロードした用語集.txtを選び、右下の「インポート」ボタンをクリックします。
あ、下の図では「用語集.txt」って日本語になってますけど、皆さんにダウンロードしていただいたファイルはyougo.txtって名前になってますのでお間違いのないよう・・・。とにかく、上の作業でつけた名前を探せばいいんですよね。

テキストインポートウィザードという機能が働いて、うまいこと取り込んでくれますので、画面の状態を見ながらいろいろ指定をしていきましょう。
まず最初に、テキストファイルといっても2種類あるもんですから、「区切り記号付きテキストファイルで、間違いないかしら?」と質問されます。これはこれでオッケーですので、「次へ」ボタンをクリックします。

次に「じゃあ、区切り記号は、カンマで間違いないかしら?」↓と質問されますよね。
これもたぶんそのままでオッケーじゃないかと思います。「次へ」行きましょう。

で、次に、「それじゃ、そのファイルをインポートしますけど、新しく適当なテーブルを作る?それとも、既に作ってある?」と聞かれます。

最初に作った[用語集]テーブルに取り込みますので、「次のテーブルに保存する」の方のテーブルの一覧から[用語集]を選んでください。つってもまだテーブルいっこしかないっすよね。

基本的に、このテキストファイルの1行分(改行マークまで)を1レコードとみなして、カンマの位置でフィールドの区切れ目を判断します。ですので、テーブルのデザイン(ID,用語,解説,検索用,出典)と、テキストファイル内の文字列の並び順があってないとインポートエラーとかばしばし出ちゃいますよ。
大丈夫ですよね。

「次へ」をクリックすると、確認画面が出て完了です。「完了」ボタンをクリックすれば、あっという間にインポートが完了します。

まずはテーブルを開いて、中身を確認してみてください。
データシートビューではちょっと見難いデータですけれど、いちおうきっちり用語集になってると思います。




これで準備が整いました。
んでは、どういう処理を作っていくかというとこなんですけど・・・。

・新しい用語の登録
・用語の検索

この2つの処理を盛り込んでいこうと思います。

で、こういう処理を作るとき、常に「完成品」をイメージするクセをつけましょう。
つまり、使う人と作る人、両方の立場になって考えるってことです。使う側のことばかり考えちゃうと、どうしても現実離れした仕様しか思いつかなくなっちゃうし、作る側の都合ばかりだと使いにくいデータベースになっちゃいます。

用語の登録と検索と印刷、フォームが分かれていた方が安全か(間違って書き換えちゃったり・・・)、フォームはいっしょの方が操作がわかりやすいか、その辺を天秤にかけて考えます。

ケースバイケースだと思うのでどうしたらいいかってのははっきりとは言えないですけど、できれば分けて考えた方が入力間違いとかを防ぐことにつながるでしょう。
今回は・・・。
んじゃ、用語の検索画面を中心にして考えてみましょうか。