メールマガジン【アクセスで作るシリーズ】
バックナンバー 【住所録ソフト編】 Vol.29
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ACCESSで作るシリーズ 【住所録ソフト編】
発 行 : Yoshihisa Fukuda 2002.08.10 Vol.29
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は、住所の漢数字の変換、- の変換を行います。
______________________________________
□ 住所表示用フィールドを追加する
まずは、住所の漢数字の変換や、体裁を整えて表示するための住所表示用フィールド
をフォームに追加します。
1.住所録ソフトのデータベース[Address.mdb]を開きます。
2.データベースウィンドウの[レポート]タブを選択します。
3.はがき宛名印刷[LetterAddrPrint]を選択して[デザイン]ボタンを押下します。
4.住所の位置にある[tbound2]と言うテキストボックスの、以下のプロパティを
設定します。
可視 ・・・ いいえ
幅 ・・・ 1cm
高さ ・・・ 1cm
5.[tbound2]は、非表示としますので、場所は何処でも良いのですが、レポートの
デザインを編集するのに邪魔にならない様、下のほうへ移動しておきます。
6.住所表示用のテキストボックスを追加します。
住所は、長い場合、2行に分割するので2つテキストボックスを追加します。
(1)ツールバーのテキストボックスを選択し、コントロールウィザードを無効に
しておいて、適当な位置に2つテキストボックスを追加します。
(2)追加した2つのテキストボックスに、それぞれ以下のプロパティを設定しま
しょう。
・1つめのテキストボックスのプロパティ
名前 ・・・ Address_sub1
背景スタイル ・・・ 透明
フォント名 ・・・ MS P明朝
フォントサイズ ・・・ 16
・2つめのテキストボックスのプロパティ
名前 ・・・ Address_sub2
背景スタイル ・・・ 透明
フォント名 ・・・ MS P明朝
フォントサイズ ・・・ 16
※ フォント名とサイズは、好みで自由に設定して構いません。
以上で、住所表示用フィールドの作成は完了です。
次は、住所の数字や-を変換して、住所表示用フィールドに設定するプログラムの
作成です。
______________________________________
□ 住所の漢数字、- を変換して、住所表示用フィールドに設定する。
住所は、全て全角で印刷します。
従って、住所の中に半角の - がある場合、全角の ー に変換します。
また、住所の中に全角の-があると、縦書きでも - と横棒になるので、これも
ー に変換します。
変換の手順は、まず半角文字を全て全角に置き換えます。
その後、数字と-を漢数字とーに置き換えます。
1.レポートデザインの画面で、[詳細]セクションを選択します。
2.次に[フォーマット時]プロパティを[イベントプロシージャ]にして、右端の
[...]ボタンを押下します。
3.Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)と
言うサブルーチンの中に以下のコードを記述します。
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
Dim StrAddr As String
StrAddr = StrConv(Me.Address, vbWide)
Me.Address_sub1 = AddrConv(StrAddr)
End Sub
4.次に Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
の上に(Option Explicitの下)以下のコードを記述します。
Const ConvStr_A As String = "1234567890-"
Const ConvStr_B As String = "一二三四五六七八九〇ー"
5.次にモジュールウィンドウの一番下に以下のサブルーチンを記述します。
Private Function AddrConv(Addr As String) As String
Dim EditAddr As String
Dim Char As String
Dim I As Integer
Dim Cnt As Integer
EditAddr = ""
For I = 1 To Len(Addr)
Char = Mid$(Addr, I, 1)
Cnt = InStr(1, ConvStr_A, Char, vbBinaryCompare)
If Cnt > 0 Then
EditAddr = EditAddr & Mid$(ConvStr_B, Cnt, 1)
Else
EditAddr = EditAddr & Char
End If
Next I
AddrConv = EditAddr
End Function
以上で、漢数字と - の変換サブルーチンは終わりです。
レポートをプレビューで見てみましょう。
______________________________________
□ 住所の漢数字、- の変換結果の確認と、その他の修正点。
住所フォームで住所欄に半角数字や、半角 - 、全角-などを入れて、プレビューで
確認してみましょう。
どの様な入れ方をしても、全て数字は漢数字で、- も縦書きで表示されている事を
確認して下さい。
少し、体裁が良くなってきましたが、まだまだ修正点が数多くあります。
まず、先ほど住所が長い場合、2行に分割すると言う事で、テキストボックスを2つ
追加しましたが、現在のプログラムのままでは、2行に分割して表示はされません。
また、現状では、個人の住所に、会社名、部署名を表示しています。
それに、連名の表示もありません。
ここで、現在予定している修正内容をまとめてみましょう。
1.住所の2行分割表示。
住所が長い場合に、住所を2行に分割する訳ですが、分割する場所は、どこでも
良い訳ではありません。
町域名の途中で分割する訳にはいかないので、分割位置が適切かどうかの判断が
必要です。
そこで、郵便番号データを使用して、住所フィールドの住所を都道府県名、市区
町村名、町域名を判断し、2行に分割する様にします。
そこで、以下の様な仕様で作成していきます。
1.入力された住所が、郵便番号データの中に存在する事。
(郵便番号データに無い住所は、2分割しない)
2.住所フォームにて、郵便番号が入力されている場合、郵便番号データの郵便
番号、住所と比較し、住所が異なる場合は警告メッセージを表示する。
2.宛名印刷条件設定画面の仕様。
(1)宛名住所、差出人住所は個人、又は会社の選択ができる様にする。
(2)宛名、差出人とも、連名の印刷が選択できる様にする。
(3)宛名印刷するデータの指定ができる様にする。
(4)印刷部数の指定ができる様にする。
次回は、宛名印刷条件設定画面を作成します。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ 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.08.10 Vol.29
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は、住所の漢数字の変換、- の変換を行います。
______________________________________
□ 住所表示用フィールドを追加する
まずは、住所の漢数字の変換や、体裁を整えて表示するための住所表示用フィールド
をフォームに追加します。
1.住所録ソフトのデータベース[Address.mdb]を開きます。
2.データベースウィンドウの[レポート]タブを選択します。
3.はがき宛名印刷[LetterAddrPrint]を選択して[デザイン]ボタンを押下します。
4.住所の位置にある[tbound2]と言うテキストボックスの、以下のプロパティを
設定します。
可視 ・・・ いいえ
幅 ・・・ 1cm
高さ ・・・ 1cm
5.[tbound2]は、非表示としますので、場所は何処でも良いのですが、レポートの
デザインを編集するのに邪魔にならない様、下のほうへ移動しておきます。
6.住所表示用のテキストボックスを追加します。
住所は、長い場合、2行に分割するので2つテキストボックスを追加します。
(1)ツールバーのテキストボックスを選択し、コントロールウィザードを無効に
しておいて、適当な位置に2つテキストボックスを追加します。
(2)追加した2つのテキストボックスに、それぞれ以下のプロパティを設定しま
しょう。
・1つめのテキストボックスのプロパティ
名前 ・・・ Address_sub1
背景スタイル ・・・ 透明
フォント名 ・・・ MS P明朝
フォントサイズ ・・・ 16
・2つめのテキストボックスのプロパティ
名前 ・・・ Address_sub2
背景スタイル ・・・ 透明
フォント名 ・・・ MS P明朝
フォントサイズ ・・・ 16
※ フォント名とサイズは、好みで自由に設定して構いません。
以上で、住所表示用フィールドの作成は完了です。
次は、住所の数字や-を変換して、住所表示用フィールドに設定するプログラムの
作成です。
______________________________________
□ 住所の漢数字、- を変換して、住所表示用フィールドに設定する。
住所は、全て全角で印刷します。
従って、住所の中に半角の - がある場合、全角の ー に変換します。
また、住所の中に全角の-があると、縦書きでも - と横棒になるので、これも
ー に変換します。
変換の手順は、まず半角文字を全て全角に置き換えます。
その後、数字と-を漢数字とーに置き換えます。
1.レポートデザインの画面で、[詳細]セクションを選択します。
2.次に[フォーマット時]プロパティを[イベントプロシージャ]にして、右端の
[...]ボタンを押下します。
3.Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)と
言うサブルーチンの中に以下のコードを記述します。
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
Dim StrAddr As String
StrAddr = StrConv(Me.Address, vbWide)
Me.Address_sub1 = AddrConv(StrAddr)
End Sub
4.次に Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
の上に(Option Explicitの下)以下のコードを記述します。
Const ConvStr_A As String = "1234567890-"
Const ConvStr_B As String = "一二三四五六七八九〇ー"
5.次にモジュールウィンドウの一番下に以下のサブルーチンを記述します。
Private Function AddrConv(Addr As String) As String
Dim EditAddr As String
Dim Char As String
Dim I As Integer
Dim Cnt As Integer
EditAddr = ""
For I = 1 To Len(Addr)
Char = Mid$(Addr, I, 1)
Cnt = InStr(1, ConvStr_A, Char, vbBinaryCompare)
If Cnt > 0 Then
EditAddr = EditAddr & Mid$(ConvStr_B, Cnt, 1)
Else
EditAddr = EditAddr & Char
End If
Next I
AddrConv = EditAddr
End Function
以上で、漢数字と - の変換サブルーチンは終わりです。
レポートをプレビューで見てみましょう。
______________________________________
□ 住所の漢数字、- の変換結果の確認と、その他の修正点。
住所フォームで住所欄に半角数字や、半角 - 、全角-などを入れて、プレビューで
確認してみましょう。
どの様な入れ方をしても、全て数字は漢数字で、- も縦書きで表示されている事を
確認して下さい。
少し、体裁が良くなってきましたが、まだまだ修正点が数多くあります。
まず、先ほど住所が長い場合、2行に分割すると言う事で、テキストボックスを2つ
追加しましたが、現在のプログラムのままでは、2行に分割して表示はされません。
また、現状では、個人の住所に、会社名、部署名を表示しています。
それに、連名の表示もありません。
ここで、現在予定している修正内容をまとめてみましょう。
1.住所の2行分割表示。
住所が長い場合に、住所を2行に分割する訳ですが、分割する場所は、どこでも
良い訳ではありません。
町域名の途中で分割する訳にはいかないので、分割位置が適切かどうかの判断が
必要です。
そこで、郵便番号データを使用して、住所フィールドの住所を都道府県名、市区
町村名、町域名を判断し、2行に分割する様にします。
そこで、以下の様な仕様で作成していきます。
1.入力された住所が、郵便番号データの中に存在する事。
(郵便番号データに無い住所は、2分割しない)
2.住所フォームにて、郵便番号が入力されている場合、郵便番号データの郵便
番号、住所と比較し、住所が異なる場合は警告メッセージを表示する。
2.宛名印刷条件設定画面の仕様。
(1)宛名住所、差出人住所は個人、又は会社の選択ができる様にする。
(2)宛名、差出人とも、連名の印刷が選択できる様にする。
(3)宛名印刷するデータの指定ができる様にする。
(4)印刷部数の指定ができる様にする。
次回は、宛名印刷条件設定画面を作成します。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ 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.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□