Access実践入門 TOPへ
 ■ マイクロソフトアクセス、並べ替え、検索、印刷
目的のデータを探すために
入力済みのデータ一覧表画面から、データを探す場合に、フリガナ順に並び替えると、探しやすくなります。また探すためのキーワードを指定して、該当データだけの一覧表にしてやると、もっと探しやすくなるでしょう。
ここでは、データを探すための処理について説明します。

並び替え

まず、「fo住所録一覧表」のデザインを見てください。
フォームフッターの「かな順」のプロパティを見てください。
[クリック時]に次のイベントプロシージャが書いてあります。

Me.RecordSource = "qu住所録一覧表かな順"

「qu住所録一覧表かな順」は次のようになっています。



ふりがなに並び替えがが設定されています。


次に、フォームフッターの「番号順」のプロパティを見てください。
[クリック時]に次のイベントプロシージャが書いてあります。

Me.RecordSource = "qu住所録一覧表番号順"

「qu住所録一覧表番号順」は次のようになっています。



住所録番号に並び替えがが設定されています。

検索

「fo住所録一覧表」のデザインを見てください。
フォームフッターの「検索」のプロパティを見てください。
[クリック時]に次のイベントプロシージャが書いてあります。

DoCmd.OpenForm "fo住所録検索"

名前の、一部分(どこの部分でもOK)と電話番号の一部分を指定して、検索出来るようにしています。
何も指定しないで、検索ボタンをクリックすると、全てのデータが検索結果として表示されます。




「fo住所録検索」の「検索」のプロパティを見てください。
[クリック時]に次のようなプロシージャが書いてあります。

Form_fo住所録一覧表.RecordSource = "qu住所録検索"
DoCmd.Close acForm, "fo住所録検索"

一覧表のレコードソースを変更しています。
その後、検索指定画面を閉じています。
これが、上下逆だと、機能しません。
上のクエリーが「fo住所録検索」を参照しているからです。

「qu住所録検索の」[名前]には、次のような抽出条件が書いてあります。

Like "*" & [Forms]![fo住所録検索]![名前] & "*"

ここがもし、[Forms]![fo住所録検索]![名前]だけなら、完全に名前が一致したデータしか、検索出来ません。苗字だけ、あるいは名前だけ入れても検索できません。
上のように書くことによって、たとえば、鈴木太郎という名前なら、「鈴木」「木」「木太」「太郎」等でも検索できます、つながっている文字なら前後は何でもいいのです。
上の式の書き方を、覚えてください。

電話番号は、nz関数を使っています。
もし、nzを付けていない、左の列の電話番号の欄に、次のように書いた場合は、どうなるでしょう
Like "*" & [Forms]![fo住所録検索]![電話番号] & "*"
結果は、電話番号が入力されていない、データが何件かあったとしたら、それらのデータは、検索に出てきません。

フィールドに関数や式を書く場合は、項目名、コロン、式の順で書きます
下を見てください


nzは、電話番号が空白の場合は、抽出条件は無視して、検索結果にそのデータを入れてくれます。名前は、入力チェックはしていませんが、空白の場合はないでしょうから、nzは使っていません。

印刷

「fo住所録一覧表」のデザインを見てください。
フォームフッターの「住所録印刷」のプロパティを見てください。
[クリック時]にマクロが書いてあります。

「ma住所録.印刷指定」で区分を入力できるようになっています。
コンボボックスを使っています。
区分を選択すれば、その区分のみの印刷になります。

このレポートのレコードソースは「qu住所録印刷」になっています。
[区分名]の抽出条件に以下のように書いてあります。

Like "*" & [Forms]![fo住所録印刷]![区分] & "*"

このレポートでは、区分に対してグループ化の設定をしています。



区分名フッターのプロパティを見てください


[改ページ]のところが「カレントセッションの後」となっていて、グループの値が変わったら、改ページをすることにしています。

このように、データの中の何かが変わったら改ページをさせたいときに、このようにします。
ここでは指定していませんが、同じ区分だった場合その区分の中ではどの順番で印刷するかの指定は、次の行に、たとえば、並び替え/グループ化のウィンドで「ふりがな」を設定しておかなければいけません。