Microsoft Access Club >Access裏技Tips >このページ >次頁 < 前項 サイト内検索


住所録内の氏名をあ行〜わ行で抽出し印刷する : Access裏技Tips



年賀状、暑中見舞いの葉書作成のため、住所録管理をAccessでされている方も多いかと思います。 ここでは、多数の個人データを持つ住所録テーブルから名前をもとにあ行〜わ行で抽出し、レポートに印刷する技を紹介します。

氏名をあ行〜わ行で抽出し印刷する

  1. サンプルテーブル(tbl_sample)をもとにして、「住所録内の氏名抽出リスト」の 帳票レポート(rpt_sample)を作成します。
  2. 次に、データ抽出を行うフォームを作成します。
  3. このフォームフッターにオプショングループ(あ行〜わ行、ALLを含む)を作成し、オプションボタンを11個配置します。
  4. データ抽出はFilterを利用し、抽出条件をレポートを開くプロシージャのWhere条件として目的のデータのみを印刷します。

「住所録内の氏名抽出リスト」の レポートを作成

  1. 「住所録内の氏名抽出リスト」の レポートを作成します。
  2. サンプルデータを元に、住所録内の氏名抽出リストを作成します。

「住所録内の氏名抽出」の フォームを作成

  1. 「住所録内の氏名抽出」の フォームを作成します。
  2. 非連結フォームを作成します。
  3. フォームフッターにオプショングループ(OP選択)を作成し、オプションボタン11個を配置します。
  4. フォームフッターに印刷を実行するコマンドボタン(cmd印刷)を作成します。

フォームのイベントプロシージャの宣言セクションに変数を作成

フォームのイベントプロシージャの宣言セクションに変数を作成します。

Option Compare Database
Option Explicit

Dim varFilter As Variant ' --- A
解説
  1. バリアント型の変数を作成します。
    フォームが開いている間、値を保持するために宣言セクション内に変数を定義しています。

オプショングループ更新後処理イベントプロシージャの作成

オプショングループ更新後処理イベントプロシージャを作成します。

Private Sub OP選択_AfterUpdate()

    Select Case Me.OP選択.Value ' --- A

        Case 1: varFilter = "ふりがな Like '[あ-お]*'" ' --- B
        Case 2: varFilter = "ふりがな Like '[か-ご]*'"
        Case 3: varFilter = "ふりがな Like '[さ-ぞ]*'"
        Case 4: varFilter = "ふりがな Like '[た-ぞ]*'"
        Case 5: varFilter = "ふりがな Like '[な-の]*'"
        Case 6: varFilter = "ふりがな Like '[は-ぽ]*'"
        Case 7: varFilter = "ふりがな Like '[ま-も]*'"
        Case 8: varFilter = "ふりがな Like '[や-よ]*'"
        Case 9: varFilter = "ふりがな Like '[ら-ろ]*'"
        Case 10: varFilter = "ふりがな Like '[わ-ん]*'"
        Case 11: varFilter = "ふりがな Like '[A-Z]*'"
        Case 12: varFilter = "" ' --- C
        
    End Select
    
    Me.Filter = varFilter ' --- D
    Me.FilterOn = True
    
End Sub
解説
  1. Valueプロパティでオプショングループのオプションボタンが選択されているかを判断します。
  2. Like演算子と指定範囲内の文字([あ-お])、そしてワイルドカード(*)を記述しています。
    これで、ふりがな(テーブルフィールド名)の先頭文字があ行であるデータを抽出します。
  3. オプショングループでフィルターを利用する場合、すべての項目を表示させる機能があると便利です。
  4. 変数varFilterの条件を元にフィルターを実行します。
今回のおすすめポイント

:(コロン)

Select Case ステートメントで、Case節の条件式につづいて :(コロン)を付けると一行で処理を記述することができます。
簡易な構文であれば、一気に記述するこのようなスタイルもいいでしょう。
サンプルでは行数を短めにするために、:(コロン)を利用しています。
また、Ifステートメントでも利用できます。

コマンドボタンクリック時イベントプロシージャの作成

コマンドボタンクリック時イベントプロシージャを作成します。

Private Sub cmd印刷_Click()

    DoCmd.OpenReport "rpt_main", acPreview, , varFilter ' --- A

End Sub
解説
  1. 変数varFilterはフィルターの値を保持していますので、これをWhere条件としてレポートを開きます。

動作確認

  1. フォームをビューモードで開きます。
  2. さ行のオプションボタンをクリックします。

  1. [印刷]のコマンドボタンをクリックし、印刷を実行します。

今回のおすすめポイント

レポートと抽出条件

レポートを開く際に抽出条件を設定する代表的な方法は、OpenReportメソッドに抽出条件式を記述することです。
これ以外にも、レポートのレコードソース(クエリー)の抽出条件欄を利用する方法もありますが、変数を用いた場合はお勧めできません。

関連ページ

ページの先頭へ 前ページへ戻る

 


住所録内の氏名をあ行〜わ行で抽出し印刷する : Access裏技Tips


 

-Microsoft Access Club-

cPanel あるいは PLESKコントロールパネルをインストールした専用レンタルサーバのディスカウントプランを期間限定で公開しています。
cPanel・PLESKコントロールパネルを備えた専用レンタルサーバ....。