メールマガジン【アクセスで作るシリーズ】


バックナンバー 【住所録ソフト編】 Vol.45
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

    ACCESSで作るシリーズ  【住所録ソフト編】

    発 行 : Yoshihisa Fukuda          2003.03.08 Vol.45

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は、住所録印刷のデータ抽出条件設定、表示順序設定です。
______________________________________
 □ 住所録印刷のデータ抽出条件設定サブルーチンを作成する。

1.住所録ソフトのデータベース[Address.mdb]を開きます。

2.データベースウィンドウの[フォーム]タブを選択します。

3.住所録印刷指示画面のフォーム[AddressRepForm]を選択し[デザイン]ボタンを
  押下します。

4.住所録印刷指示画面フォームの[印刷]ボタンを選択し[クリック時]プロパティ
  にカーソルを移動し、右端の[...]ボタンを押下します。

5.モジュールウィンドウが開いたら、最終行(前回作成した SetGroup() サブル
  ーチンの後ろ)にカーソルを移動し、以下のコードを入力します。

Private Function SetWhereStr()
  Dim JointStr As String
  Dim varItem As Variant
  Dim RetStr As String
  
  JointStr = "("
  RetStr = ""
  For Each varItem In Me.PrefectureList.ItemsSelected
    If Me.PrefectureList.ItemData(varItem) = "全国" Then
      RetStr = ""
      JointStr = "("
      Exit For
    End If
    
    RetStr = RetStr & JointStr & "Prefecture='" & _
         Me.PrefectureList.ItemData(varItem) & "'"
    JointStr = " OR "
  Next varItem
  
  If JointStr <> "(" Then
    RetStr = RetStr & ")"
    JointStr = " AND "
  End If
  If Me.SelectFrame = 2 Then
    RetStr = RetStr & JointStr & "(Kana >= '" & Me.SelectFromCombo & _
         "' AND Kana <= '" & Me.SelectToCombo & "')"
  End If
  
  SetWhereStr = RetStr
End Function

6.コードが入力できたらモジュールウィンドウを閉じます。

7.次に Vol.42 のフォーム作成時に都道府県リストボックスの[名前]プロパティの
  設定が抜けていたので、ここでやりましょう。

  都道府県リストボックスを選択し[名前]プロパティに[PrefectureList]と設定
  します。

8.ここまで出来たらフォームを保存して終了します。
______________________________________
 □ 住所録印刷の表示順を設定する。

1.データベースウィンドウの[レポート]タブを選択します。

2.住所録印刷指示画面のフォーム[AddressRep]を選択し[デザイン]ボタンを押下
  します。

3.レポートを選択した状態で[開く時]プロパティに[イベントプロシージャ]を設定
  して、右端の[...]ボタンを押下します。

4.モジュールウィンドウが開いたら Private Sub Report_Open(Cancel As Integer)
  と End Sub の間に以下の様にコードを記述します。

Private Sub Report_Open(Cancel As Integer)
  If Forms![AddressRepForm]![DispSortFrame] = 1 Then
    Me.OrderBy = "ID"
    Me.OrderByOn = True
  End If
  If Forms![AddressRepForm]![DispSortFrame] = 2 Then
    Me.OrderBy = "Furigana"
    Me.OrderByOn = True
  End If
End Sub

5.コードを入力したら、モジュールウィンドウを閉じて、フォームを保存して
  終了します。
______________________________________
 □ 住所録印刷の動作確認をする。

 それでは、ここで住所録印刷の動作確認をして見ましょう。

 まず、住所録データを適当に何件か入力します。
 データ抽出や表示順の動作確認をするので、ある程度の件数が無いと、結果が
 正しいかどうか解りません。

 また、表示順がデータ登録順と50音順で変わるように、データ登録時に50音が
 混ぜ合わさった登録の仕方をしましょう。

 データが登録できたら、住所録印刷指示画面を開き、グループ1を「都道府県」に
 指定して[印刷]ボタンを押します。

 都道府県毎にヘッダが付いて表示されればOKです。
 同様にグループ1を「50音」に指定して確認しましょう。

 次は、グループ1を「都道府県」、グループ2を「50音」にして印刷して見ま
 しょう。
 今度は「都道府県」毎の中に「50音」毎にグループ化されて表示されます。

 一応、この逆のグループ1を「50音」、グループ2を「都道府県」で印刷して
 見ましょう。
 結果も、先程と逆で「50音」毎の中に「都道府県」毎にグループ化されて表示
 されます。

 では、次に表示順の確認をします。
 表示順を「登録順」にすると、データを登録した順番で、「50音」にすると50
 音順で表示されます。

 グループを指定した場合、そのグループの中で表示順で指定した順番に表示され
 ます。
 従って、グループ化で「50音」を指定した場合、50音毎にグループ化されて
 印刷されるので、表示順を「50音」にしてもあまり意味がありません。

 次はデータの抽出です。

 「都道府県」や「50音」で色々な指定をして、指定した条件に合うデータのみ
 印刷されればOKです。

 この時、「50音」の抽出条件で開始、終了を正しく入力しないと、印刷結果も
 正しく表示されません。
 (例えば、開始が「お」で終了が「あ」など)

今回はここまでです。
次回は、住所録印刷の仕組みとプログラムの解説を行います。
______________________________________
 □ お知らせ。

  ・ホームページについて。

   先日、ホームページのサーバーを移行したばかりなのですが、手続きの不備で
   現在のドメインが失効される事になりました。

   現在、新たにドメインを取得する手続きを行っています。

   新しいドメインでホームページをオープンしたら、メールマガジンでお知らせ
   いたしますが、その前に現行のドメインでの参照が不可能になる可能性も
   あります。
   予めご了承下さい。

  ・質問について

   質問に関しましては、メールマガジンの内容に限らず、アクセスに関する全般
   を受け付けております。

   回答に関しましては、即回答出来ない場合もありますので、ご了承下さい。
   (質問の内容により、回答に要する時間は変わります)

   また、大変沢山の質問を頂いておりますので、質問される場合、出来るだけ
   簡潔にまとめて、要点(何を聞きたいのか)を解りやすく質問して下さい。

   私の通信環境は、ケーブルテレビで通信速度は10Mbpsなので問題無いですが、
   メールチェックを必ず自宅でするとは限りません。
   外出先でモバイルでチェックする場合などもありますので、前触れもなく、
   いきなり添付ファイルをメールで送るのはご遠慮下さい。
   質問の内容により、私の方で、検証のためファイルを送って下さいと言います
   ので、その時に送るようにお願いいたします。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

◇ ACCESSで作るシリーズ 【住所録ソフト編】
◇ 発 行 元  :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
  ご質問等   :fukud@nifty.com

◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
  しています。(まぐまぐID:0000077071)
◇ バックナンバー:http://www.fsc-net.com
◇ 登録・解除  :http://www.fsc-net.com

 Copyright(C) 2001-2003 Yoshihisa Fukuda All rights reserved.

◇転載について
 このメールマガジンの無断転載などは、一切禁止です。
 転載をご希望の方は、事前にメールで連絡をください。
◇免責
 このメールマガジン及びホームページの内容による、いかなる損害、障害などに
 関して発行者は一切の責任を負いません。
 掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□