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


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

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

    発 行 : Yoshihisa Fukuda          2002.12.28 Vol.40

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は、宛名印刷条件設定で宛先を会社に指定して時、郵便番号が自宅で表示される
現象の対応をします。
______________________________________
 □ 宛名印刷レポートの会社郵便番号の対応。

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

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

3.はがき宛名印刷[LetterAddrPrint]を選択して[デザイン]ボタンを押下します。

4.郵便番号[tbound1]テキストボックスを選択し、[コントロールソース]プロパティ
  を以下のように設定します。

  =IIf([PrintAddr]=2,[OfficeZipCode],[ZipCode])

5.レポートを保存してデザインウィンドウを終了します。

これで、条件設定で会社を指定した場合、郵便番号も会社の郵便番号に変わります。

【解説】

 まず、郵便番号と住所で、自宅と会社の切り替え方法の違いを説明します。

 住所はレポートのデザインで自宅住所と会社住所の両方のテキストボックスを
 用意しています。
 これは、漢数字変換や住所分割などの操作を行うためです。
 自宅と会社の切り替えはVBAのコードで詳細セクションの[フォーマット時]プロパ
 ティで切り替えています。

 郵便番号は、文字の変換はないので、郵便番号テキストボックスに設定する際、
 IIf関数を使用して、指定が自宅住所の場合、自宅郵便番号、会社の場合、会社
 郵便番号をそれぞれ郵便番号テキストボックス[tbound1]に設定しています。

 その設定した郵便番号テキストボックス[tbound1]を元に、四角に入るレイアウト
 で1桁づつ取り出して配置しています。

これで、はがき宛名印刷は終了と思ったのですが、1つだけ気になる点があるので
最後にそれをやりたいと思います。

気になる点と言うのは、宛名印刷条件設定画面で条件を変更して、レコード移動を
しないで[宛名印刷]ボタンを押下した場合、変更した条件が反映されません。

この対応をしましょう。
______________________________________
 □ 宛名印刷条件設定画面でレコードの確定処理をいれる。

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

2.宛名印刷条件設定[AddrPrintForm]を選択して[デザイン]ボタンを押下します。

3.[宛名印刷]ボタンを選択して、カーソルを[クリック時]プロパティに移動します。

4.右端の[...]ボタンを押下し、モジュールウィンドウを開きます。

5.AddrPrintBtn_Click() 関数に以下のようにコードを1行追加します。

Private Sub AddrPrintBtn_Click()
On Error GoTo Err_AddrPrintBtn_Click

  Dim stDocName As String

  Me.Refresh   <--- この行を追加する。

  stDocName = "LetterAddrPrint"

  SetPrintInfo stDocName, Me.Copies

  DoCmd.OpenReport stDocName, acViewPreview, , "PrintAddr <> 3"
Exit_AddrPrintBtn_Click:
  Exit Sub

Err_AddrPrintBtn_Click:
  MsgBox Err.Description
  Resume Exit_AddrPrintBtn_Click

End Sub

6.コードを追加したら、モジュールウィンドウを閉じます。

7.フォームを保存してデザインウィンドウを終了します。

以上で印刷条件を指定したあと、レコード移動しなくても条件が反映されるように
なりました。

【解説】

 印刷条件設定画面で印刷条件(連名印刷や宛先など)を指定し、レコードの移動を
 行わずに[宛名印刷]ボタンを押下すると、テーブルのレコードは画面の内容が反映
 されないため、宛名印刷で指定した条件の通りに表示されません。

 これだと、例えば宛先の[会社]ボタンを押下して、そのまますぐに[宛名印刷]
 ボタンを押下した場合、宛先が会社にならないですし、住所が1件しか登録されて
 いない時は条件指定が出来なくなります。

 そこで、[宛名印刷]ボタンを押下した時([クリック時]イベント)に、Me.Refresh
 を追加する事で、現在の画面の状態をテーブルに反映させる様にしました。
______________________________________
 □ 年末のご挨拶

   今年も早いもので、今日を含めて残すところ後4日となりました。
   メールマガジンは、この号で今年は最後となります。

   皆さん、今年もありがとうございました。
   また、来年もよろしくお願いいたします。

   どうぞ、良いお年をお迎え下さい。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

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

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

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

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