メールマガジン【アクセスで作るシリーズ】
バックナンバー 【住所録ソフト編】 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.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
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.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□