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


バックナンバー 【住所録ソフト編】 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.

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