メールマガジン【アクセスで作るシリーズ】
バックナンバー 【住所録ソフト編】 Vol.28
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ACCESSで作るシリーズ 【住所録ソフト編】
発 行 : Yoshihisa Fukuda 2002.07.27 Vol.28
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は、はがき宛名印刷の続きで、ウィザードで作成したレポートの修正です。
______________________________________
□ 郵便番号を7桁に修正する。
MS-Access97のはがきウィザードで作成したレポートは郵便番号が5桁です。
そこで、最初に郵便番号を7桁に修正しましょう。
1.住所録ソフトのデータベース[Address.mdb]を開きます。
2.データベースウィンドウの[レポート]タブを選択します。
3.はがき宛名印刷[LetterAddrPrint]を選択して[デザイン]ボタンを押下します。
4.郵便番号の位置に[tbound1_sub1]~[tbound1_sub5]と言うテキストボックスが
5つ並んでいます。
その右側にテキストボックスを2つ追加しましょう。
(1)レポートを選択した状態で、[幅]プロパティの値を[10cm]にします。
(2)ツールバーのテキストボックスを選択し[tbound1_sub5]の右側にテキスト
ボックスを追加します。
(3)追加したテキストボックスの以下のプロパティを設定します。
名前 ・・・ tbound1_sub6
コントロールソース ・・・ =Mid([tbound1],7,1)
背景スタイル ・・・ 透明
フォント名 ・・・ MS ゴシック
フォントサイズ ・・・ 20
(4)ツールバーのテキストボックスを選択し[tbound1_sub6]の右側にテキスト
ボックスを追加します。
(3)追加したテキストボックスの以下のプロパティを設定します。
名前 ・・・ tbound1_sub7
コントロールソース ・・・ =Mid([tbound1],8,1)
背景スタイル ・・・ 透明
フォント名 ・・・ MS ゴシック
フォントサイズ ・・・ 20
ここで少し解説を入れます。
【解説】
[tbound1_sub1]を選択して、[コントロールソース]プロパティを見て下さい。
=Mid([tbound1],1,1) となっていますね。
この Mid と言う関数は、指定した文字列の指定した場所から指定した文字数分を
切り出してくれる関数です。
=Mid([tbound1],1,1) では、[tbound1]に設定されている文字列の1番目から1文字
を切り出します。
[tbound1]の[コントロールソース]プロパティは[ZipCode]なので、[tbound1_sub1]
には郵便番号[ZipCode]の先頭の1文字が入ります。
同様に[tbound1_sub2]と[tbound1_sub3]を見ると、それぞれ郵便番号の2文字目と
3文字目が設定されています。
では、[tbound1_sub4]を見て下さい。
[コントロールソース]プロパティは[=Mid([tbound1],4,1)]となっています。
アクセスのはがきウィザードでは、郵便番号は - 無しでテーブルに登録する仕様
になっているので、郵便番号の4桁目は4文字目を設定しています。
しかし、このメールマガジンのZipCodeは - 付きでテーブルに登録すると言う仕様
なので、これでは[tbound1_sub4]は - になってしまいます。
そこで、[tbound1_sub4]と[tbound1_sub5]の[コントロールソース]プロパティの
修正が必要になります。
この様に、郵便番号の印刷は、Mid関数を用いて、1文字づつ切り出して表示して
います。
5.[tbound1_sub4]の[コントロールソース]プロパティを[=Mid([tbound1],5,1)]
に修正します。
6.[tbound1_sub5]の[コントロールソース]プロパティも[=Mid([tbound1],6,1)]と
修正します。
7.レポートを保存して終了します。
郵便番号の7桁への修正は以上です。
プレビュー画面で郵便番号が7桁表示されているか、確認してみましょう。
※ 印字位置の微調整は、全体の修正が終わってから、まとめてやりましょう。
______________________________________
□ 敬称の印刷の仕方について。
次に、はがき宛名ウィザードで自動生成された敬称フィールドについて少し解説を
しておきます。
敬称のフィールド名は[tbound6_Sub1]です。
この[tbound6_Sub1]の[コントロールソース]プロパティには、
=IIf(IsNull([tbound6])=-1,IIf(IsNull([tbound5])=-1,"御中","様"),[tbound6])
と設定されています。
この複雑な[コントロールソース]プロパティの内容を解説していきます。
まず、IIf関数の書式ですが、1番目が条件、2番目が条件が真の時に返す値、
2番目が条件が偽の時に返す値です。
では、先頭から見てみましょう。
IIfの条件は IsNull([tbound6])=-1 です。
これは[tbound6]の値が Null の場合、真となり、Null でない場合、偽となります。
[tbound6]の[コントロールソース]プロパティを見ると[AddressTable.Honor]となって
いるので、これは住所フォームで設定した敬称です。
すなわち、住所フォームで敬称に何も設定していない(Null)場合、真に記述されて
いる IIf(IsNull([tbound5])=-1,"御中","様") となり、敬称に何か設定されている
(Nullで無い)場合、その敬称[tbound6]が[tbound6_Sub1]に返されます。
敬称が設定されている(Nullで無い)場合は、そのまま敬称が表示されるので問題あり
ません。
では、敬称が設定されていない(NULL)場合を見てみます。
その場合、IIf(IsNull([tbound5])=-1,"御中","様") とまたIIf文になります。
これも先ほどと同様で、条件が IsNull([tbound5])=-1 です。
すなわち、[tbound5]がNullの場合、真でNullで無い場合、偽となります。
では、[tbound5]の[コントロールソース]プロパティを見てみましょう。
[tbound5]は氏名[FullName]ですね。
従って、氏名が未入力(Null)の場合、"御中"、氏名が入力されている場合、"様"が
[tbound6_Sub1]に設定されます。
まとめると、まず、敬称が設定されていれば、その敬称が表示されます。
敬称が設定されていない場合、氏名が入力されていれば、"様"が、氏名が未入力なら
"御中"が表示されると言う仕組みです。
もし、住所フォームで必ず敬称を設定するなら、[tbound6_Sub1]の[コントロール
ソース]プロパティは[AddressTable.Honor]でも構わないと言う事になります。
______________________________________
□ 差出人の郵便番号について。
では、次に差出人の郵便番号を見てみましょう。
[tbound7_sub1]と[tbound7_sub2]です。
まず、[tbound7_sub1]の[コントロールソース]プロパティは以下の様になっています。
='〒' & Mid([tbound7],1,3)
これは、差出人郵便番号[tbound7]の先頭から3文字を切り出して、その前に郵便
マーク(〒)を文字列連結しています。
次に、[tbound7_sub2]の[コントロールソース]プロパティは以下の様になっています。
=IIf(IsNumeric(Mid([tbound7],4,2))=True,"-" & Mid([tbound7],4,2),"")
これは、差出人郵便番号[tbound7]の4文字目から2文字を切り出し、それが数値で
あるかをチェックしています。
IsNumeric関数は、数値かどうかをチェックする関数です。
数値の場合、"-" と差出人郵便番号[tbound7]の4文字目から2文字を、文字列結合
しています。
数値でない場合、空き文字""を設定しています。
すなわち、昔の郵便番号は3桁と5桁だったため、5桁の時は - を付加して表示して
います。
しかし、このメールマガジンでは、郵便番号は - 付きでテーブルに設定するため、
- の付加は必要ありません。
また、郵便番号が7桁化されてから、7桁が必須となっているので、昔の様に3桁
だけの郵便番号はなくなりました。
従って、ここの表示はもっと簡単になります。
[tbound7_sub1]の[コントロールソース]プロパティに以下の様に設定しましょう。
='〒' & [tbound7]
これだけで、[tbound7_sub2]は必要ありません。
また、[tbound7]も使用せず、[tbound7_sub1]の[コントロールソース]プロパティに
='〒' & DLookUp("ZipCode","SenderTable")
と記述する事も可能です。
今回は、ここまでです。
次回は、住所の漢数字の変換、-の変換などを行います。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ ACCESSで作るシリーズ 【住所録ソフト編】
◇ 発 行 元 :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
ご質問等 :fukud@nifty.com
◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
しています。(まぐまぐID:0000077071)
◇ バックナンバー:http://homepage2.nifty.com/f-soft/
◇ 登録・解除 :http://homepage2.nifty.com/f-soft/
Copyright(C) 2001-2002 Yoshihisa Fukuda All rights reserved.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ACCESSで作るシリーズ 【住所録ソフト編】
発 行 : Yoshihisa Fukuda 2002.07.27 Vol.28
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は、はがき宛名印刷の続きで、ウィザードで作成したレポートの修正です。
______________________________________
□ 郵便番号を7桁に修正する。
MS-Access97のはがきウィザードで作成したレポートは郵便番号が5桁です。
そこで、最初に郵便番号を7桁に修正しましょう。
1.住所録ソフトのデータベース[Address.mdb]を開きます。
2.データベースウィンドウの[レポート]タブを選択します。
3.はがき宛名印刷[LetterAddrPrint]を選択して[デザイン]ボタンを押下します。
4.郵便番号の位置に[tbound1_sub1]~[tbound1_sub5]と言うテキストボックスが
5つ並んでいます。
その右側にテキストボックスを2つ追加しましょう。
(1)レポートを選択した状態で、[幅]プロパティの値を[10cm]にします。
(2)ツールバーのテキストボックスを選択し[tbound1_sub5]の右側にテキスト
ボックスを追加します。
(3)追加したテキストボックスの以下のプロパティを設定します。
名前 ・・・ tbound1_sub6
コントロールソース ・・・ =Mid([tbound1],7,1)
背景スタイル ・・・ 透明
フォント名 ・・・ MS ゴシック
フォントサイズ ・・・ 20
(4)ツールバーのテキストボックスを選択し[tbound1_sub6]の右側にテキスト
ボックスを追加します。
(3)追加したテキストボックスの以下のプロパティを設定します。
名前 ・・・ tbound1_sub7
コントロールソース ・・・ =Mid([tbound1],8,1)
背景スタイル ・・・ 透明
フォント名 ・・・ MS ゴシック
フォントサイズ ・・・ 20
ここで少し解説を入れます。
【解説】
[tbound1_sub1]を選択して、[コントロールソース]プロパティを見て下さい。
=Mid([tbound1],1,1) となっていますね。
この Mid と言う関数は、指定した文字列の指定した場所から指定した文字数分を
切り出してくれる関数です。
=Mid([tbound1],1,1) では、[tbound1]に設定されている文字列の1番目から1文字
を切り出します。
[tbound1]の[コントロールソース]プロパティは[ZipCode]なので、[tbound1_sub1]
には郵便番号[ZipCode]の先頭の1文字が入ります。
同様に[tbound1_sub2]と[tbound1_sub3]を見ると、それぞれ郵便番号の2文字目と
3文字目が設定されています。
では、[tbound1_sub4]を見て下さい。
[コントロールソース]プロパティは[=Mid([tbound1],4,1)]となっています。
アクセスのはがきウィザードでは、郵便番号は - 無しでテーブルに登録する仕様
になっているので、郵便番号の4桁目は4文字目を設定しています。
しかし、このメールマガジンのZipCodeは - 付きでテーブルに登録すると言う仕様
なので、これでは[tbound1_sub4]は - になってしまいます。
そこで、[tbound1_sub4]と[tbound1_sub5]の[コントロールソース]プロパティの
修正が必要になります。
この様に、郵便番号の印刷は、Mid関数を用いて、1文字づつ切り出して表示して
います。
5.[tbound1_sub4]の[コントロールソース]プロパティを[=Mid([tbound1],5,1)]
に修正します。
6.[tbound1_sub5]の[コントロールソース]プロパティも[=Mid([tbound1],6,1)]と
修正します。
7.レポートを保存して終了します。
郵便番号の7桁への修正は以上です。
プレビュー画面で郵便番号が7桁表示されているか、確認してみましょう。
※ 印字位置の微調整は、全体の修正が終わってから、まとめてやりましょう。
______________________________________
□ 敬称の印刷の仕方について。
次に、はがき宛名ウィザードで自動生成された敬称フィールドについて少し解説を
しておきます。
敬称のフィールド名は[tbound6_Sub1]です。
この[tbound6_Sub1]の[コントロールソース]プロパティには、
=IIf(IsNull([tbound6])=-1,IIf(IsNull([tbound5])=-1,"御中","様"),[tbound6])
と設定されています。
この複雑な[コントロールソース]プロパティの内容を解説していきます。
まず、IIf関数の書式ですが、1番目が条件、2番目が条件が真の時に返す値、
2番目が条件が偽の時に返す値です。
では、先頭から見てみましょう。
IIfの条件は IsNull([tbound6])=-1 です。
これは[tbound6]の値が Null の場合、真となり、Null でない場合、偽となります。
[tbound6]の[コントロールソース]プロパティを見ると[AddressTable.Honor]となって
いるので、これは住所フォームで設定した敬称です。
すなわち、住所フォームで敬称に何も設定していない(Null)場合、真に記述されて
いる IIf(IsNull([tbound5])=-1,"御中","様") となり、敬称に何か設定されている
(Nullで無い)場合、その敬称[tbound6]が[tbound6_Sub1]に返されます。
敬称が設定されている(Nullで無い)場合は、そのまま敬称が表示されるので問題あり
ません。
では、敬称が設定されていない(NULL)場合を見てみます。
その場合、IIf(IsNull([tbound5])=-1,"御中","様") とまたIIf文になります。
これも先ほどと同様で、条件が IsNull([tbound5])=-1 です。
すなわち、[tbound5]がNullの場合、真でNullで無い場合、偽となります。
では、[tbound5]の[コントロールソース]プロパティを見てみましょう。
[tbound5]は氏名[FullName]ですね。
従って、氏名が未入力(Null)の場合、"御中"、氏名が入力されている場合、"様"が
[tbound6_Sub1]に設定されます。
まとめると、まず、敬称が設定されていれば、その敬称が表示されます。
敬称が設定されていない場合、氏名が入力されていれば、"様"が、氏名が未入力なら
"御中"が表示されると言う仕組みです。
もし、住所フォームで必ず敬称を設定するなら、[tbound6_Sub1]の[コントロール
ソース]プロパティは[AddressTable.Honor]でも構わないと言う事になります。
______________________________________
□ 差出人の郵便番号について。
では、次に差出人の郵便番号を見てみましょう。
[tbound7_sub1]と[tbound7_sub2]です。
まず、[tbound7_sub1]の[コントロールソース]プロパティは以下の様になっています。
='〒' & Mid([tbound7],1,3)
これは、差出人郵便番号[tbound7]の先頭から3文字を切り出して、その前に郵便
マーク(〒)を文字列連結しています。
次に、[tbound7_sub2]の[コントロールソース]プロパティは以下の様になっています。
=IIf(IsNumeric(Mid([tbound7],4,2))=True,"-" & Mid([tbound7],4,2),"")
これは、差出人郵便番号[tbound7]の4文字目から2文字を切り出し、それが数値で
あるかをチェックしています。
IsNumeric関数は、数値かどうかをチェックする関数です。
数値の場合、"-" と差出人郵便番号[tbound7]の4文字目から2文字を、文字列結合
しています。
数値でない場合、空き文字""を設定しています。
すなわち、昔の郵便番号は3桁と5桁だったため、5桁の時は - を付加して表示して
います。
しかし、このメールマガジンでは、郵便番号は - 付きでテーブルに設定するため、
- の付加は必要ありません。
また、郵便番号が7桁化されてから、7桁が必須となっているので、昔の様に3桁
だけの郵便番号はなくなりました。
従って、ここの表示はもっと簡単になります。
[tbound7_sub1]の[コントロールソース]プロパティに以下の様に設定しましょう。
='〒' & [tbound7]
これだけで、[tbound7_sub2]は必要ありません。
また、[tbound7]も使用せず、[tbound7_sub1]の[コントロールソース]プロパティに
='〒' & DLookUp("ZipCode","SenderTable")
と記述する事も可能です。
今回は、ここまでです。
次回は、住所の漢数字の変換、-の変換などを行います。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ ACCESSで作るシリーズ 【住所録ソフト編】
◇ 発 行 元 :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
ご質問等 :fukud@nifty.com
◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
しています。(まぐまぐID:0000077071)
◇ バックナンバー:http://homepage2.nifty.com/f-soft/
◇ 登録・解除 :http://homepage2.nifty.com/f-soft/
Copyright(C) 2001-2002 Yoshihisa Fukuda All rights reserved.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□