メールマガジン【アクセスで作るシリーズ】
バックナンバー 【住所録ソフト編】 Vol.13
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ACCESSで作るシリーズ 【住所録ソフト編】
発 行 : Yoshihisa Fukuda 2001.01.19 Vol.13
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は郵便番号に該当する住所が複数ある場合の住所一覧フォームの作成です。
______________________________________
□ 住所一覧フォームを作成する。
郵便番号に該当する住所が複数ある場合に、その住所を一覧表示するフォームを
作成しましょう。
1.住所録ソフトのデータベース[Address.mdb]を開きます。
2.データベースウィンドウの[フォーム]タブを選択します。
3.[新規作成]ボタンを押下し、[フォームの新規作成]ダイアログで[デザインビュ
ー]を選択し[OK]ボタンを押下します。
4.フォームを選択した状態で、以下のプロパティを設定します。
表題 ・・・ 住所一覧
レコードセレクタ ・・・ いいえ
移動ボタン ・・・ いいえ
コントロールボックス ・・・ いいえ
5.ツールバーのリストボックスを選択し、フォームの左上あたりの適当なところで
クリックします。
6.[リストボックスウィザード]ダイアログが開いたら[テーブルまたはクエリーの
値を表示する]を選択し[次へ]ボタンを押下します。
7.[リストボックスの値の取得元となるテーブルまたはクエリーを選択します]で
[ZipCodeTable]を選択し[次へ]ボタンを押下します。
8.選択可能なフィールドから[ZipCode][Address1][Address2][Address3]を選択し
[次へ]ボタンを押下します。
9.[表示しないキー列]のチェックが付いた状態で[次へ]ボタンを押下します。
10.[リストボックスに付けるラベルを指定して下さい]で[住所一覧]と入力して
[完了]ボタンを押下します。
11.次に[閉じる]ボタンを付けましょう。
以下の手順で[閉じる]ボタンを作成して下さい。
(1)ツールバーの[コマンドボタン]を選択します。
(2)ツールバーの[コントロールウィザード]を選択した状態で、フォームの
[閉じる]ボタンを作成したい所でクリックします。
(3)[コマンドボタンウィザード]ダイアログが開いたら、[種類] の所で
[フォームの操作]を選択し、[ボタンの動作]の所を[フォームを閉じる]を
選択します。
(4)[次へ]ボタンを押下し、[文字列]を選択し、横の入力フィールドに[閉じる]
と入力します。
(5)[次へ]ボタンを押下し[ボタン名を指定して下さい]の所に[ExitBtn]と入力
して[完了]ボタンを押下します。
これで一応、住所一覧フォームの概観ができました。
後は、先程作成したリストボックスの細かい設定を行います。
12.先程作成したリストボックスを選択し、[名前]プロパティに[AddrList]と設定
します。
13.[値集合ソース]プロパティにカーソルを移動し、右端の[...]ボタンを押下します。
14.クエリービルダが開いたら、まず[ID]フィールドの[表示]のチェックを外します。
15.次に[ZipCode]フィールドの[表示]のチェックを外し[抽出条件]に
Left([Forms]![AddressForm]![ZipCode],3) & Right([Forms]![AddressForm]![ZipCode],4)
と入力します。
16.クエリービルダを保存して終了します。
17.[列数]プロパティを[3]にします。
また、[列幅]プロパティを削除しましょう。
(体裁よくしたい人は、適当な値で[列幅]プロパティを設定して下さい)
18.[ダブルクリック]プロパティへカーソルを移動し[イベントプロシージャ]にして
右端の[...]ボタンを押下します。
19.モジュールウィンドウが開いたら、以下のコードを記述します。
Private Sub AddrList_DblClick(Cancel As Integer)
Dim varItm As Variant
For Each varItm In Me.AddrList.ItemsSelected
Forms![AddressForm]![Address] = Me.AddrList.Column(0, varItm) & _
Me.AddrList.Column(1, varItm) & _
Me.AddrList.Column(2, varItm)
Next varItm
DoCmd.Close
End Sub
これで住所一覧フォームは完成です。
フォームを[AddrListForm]と言う名前で保存して終了しましょう。
______________________________________
□ 住所フォームに住所一覧呼び出しプログラムを追加する。
最後に住所フォームの[郵便番号<=>住所変換]ボタンで該当住所が複数あった場合、
この住所一覧フォームを呼び出すコードを記述します。
20.住所フォームをデザインで開いて[郵便番号<=>住所変換]ボタンを選択し、
[クリック時]プロパティにカーソルを移動し右端の[...]ボタンを押下します。
21.既に、前に書いたコードが表示されるので、そのコードの中の
ZipFind = Left(Me.ZipCode, 3) & Right(Me.ZipCode, 4)
と
Set Addr_DB = CurrentDb
の間に、以下のコードを入力します。
If DCount("*", "ZipCodeTable", ZipFind) > 1 Then
DoCmd.OpenForm "AddrListForm"
Exit Sub
End If
22.モジュールウィンドウを閉じて、フォームを保存して終了します。
これで、郵便番号に該当する住所が複数ある場合、一覧選択できる様になりました。
試しに、郵便番号に[028-7302]と入力して、[郵便番号<=>住所変換]ボタンを押下して
見て下さい。
岩手県岩手郡松尾村 までが同じで、八幡平温泉郷、松川温泉、寄木 と言う3つの
住所が出てきますね。
ここで真ん中の 岩手県岩手郡松尾村松川温泉 を選択してみて下さい。
住所フォームの住所欄に 岩手県岩手郡松尾村松川温泉 と入りましたか。
今回はここまでです。
次回は郵便番号テーブルのメンテナンス画面を考えてみたいと思います。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ 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 2001.01.19 Vol.13
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は郵便番号に該当する住所が複数ある場合の住所一覧フォームの作成です。
______________________________________
□ 住所一覧フォームを作成する。
郵便番号に該当する住所が複数ある場合に、その住所を一覧表示するフォームを
作成しましょう。
1.住所録ソフトのデータベース[Address.mdb]を開きます。
2.データベースウィンドウの[フォーム]タブを選択します。
3.[新規作成]ボタンを押下し、[フォームの新規作成]ダイアログで[デザインビュ
ー]を選択し[OK]ボタンを押下します。
4.フォームを選択した状態で、以下のプロパティを設定します。
表題 ・・・ 住所一覧
レコードセレクタ ・・・ いいえ
移動ボタン ・・・ いいえ
コントロールボックス ・・・ いいえ
5.ツールバーのリストボックスを選択し、フォームの左上あたりの適当なところで
クリックします。
6.[リストボックスウィザード]ダイアログが開いたら[テーブルまたはクエリーの
値を表示する]を選択し[次へ]ボタンを押下します。
7.[リストボックスの値の取得元となるテーブルまたはクエリーを選択します]で
[ZipCodeTable]を選択し[次へ]ボタンを押下します。
8.選択可能なフィールドから[ZipCode][Address1][Address2][Address3]を選択し
[次へ]ボタンを押下します。
9.[表示しないキー列]のチェックが付いた状態で[次へ]ボタンを押下します。
10.[リストボックスに付けるラベルを指定して下さい]で[住所一覧]と入力して
[完了]ボタンを押下します。
11.次に[閉じる]ボタンを付けましょう。
以下の手順で[閉じる]ボタンを作成して下さい。
(1)ツールバーの[コマンドボタン]を選択します。
(2)ツールバーの[コントロールウィザード]を選択した状態で、フォームの
[閉じる]ボタンを作成したい所でクリックします。
(3)[コマンドボタンウィザード]ダイアログが開いたら、[種類] の所で
[フォームの操作]を選択し、[ボタンの動作]の所を[フォームを閉じる]を
選択します。
(4)[次へ]ボタンを押下し、[文字列]を選択し、横の入力フィールドに[閉じる]
と入力します。
(5)[次へ]ボタンを押下し[ボタン名を指定して下さい]の所に[ExitBtn]と入力
して[完了]ボタンを押下します。
これで一応、住所一覧フォームの概観ができました。
後は、先程作成したリストボックスの細かい設定を行います。
12.先程作成したリストボックスを選択し、[名前]プロパティに[AddrList]と設定
します。
13.[値集合ソース]プロパティにカーソルを移動し、右端の[...]ボタンを押下します。
14.クエリービルダが開いたら、まず[ID]フィールドの[表示]のチェックを外します。
15.次に[ZipCode]フィールドの[表示]のチェックを外し[抽出条件]に
Left([Forms]![AddressForm]![ZipCode],3) & Right([Forms]![AddressForm]![ZipCode],4)
と入力します。
16.クエリービルダを保存して終了します。
17.[列数]プロパティを[3]にします。
また、[列幅]プロパティを削除しましょう。
(体裁よくしたい人は、適当な値で[列幅]プロパティを設定して下さい)
18.[ダブルクリック]プロパティへカーソルを移動し[イベントプロシージャ]にして
右端の[...]ボタンを押下します。
19.モジュールウィンドウが開いたら、以下のコードを記述します。
Private Sub AddrList_DblClick(Cancel As Integer)
Dim varItm As Variant
For Each varItm In Me.AddrList.ItemsSelected
Forms![AddressForm]![Address] = Me.AddrList.Column(0, varItm) & _
Me.AddrList.Column(1, varItm) & _
Me.AddrList.Column(2, varItm)
Next varItm
DoCmd.Close
End Sub
これで住所一覧フォームは完成です。
フォームを[AddrListForm]と言う名前で保存して終了しましょう。
______________________________________
□ 住所フォームに住所一覧呼び出しプログラムを追加する。
最後に住所フォームの[郵便番号<=>住所変換]ボタンで該当住所が複数あった場合、
この住所一覧フォームを呼び出すコードを記述します。
20.住所フォームをデザインで開いて[郵便番号<=>住所変換]ボタンを選択し、
[クリック時]プロパティにカーソルを移動し右端の[...]ボタンを押下します。
21.既に、前に書いたコードが表示されるので、そのコードの中の
ZipFind = Left(Me.ZipCode, 3) & Right(Me.ZipCode, 4)
と
Set Addr_DB = CurrentDb
の間に、以下のコードを入力します。
If DCount("*", "ZipCodeTable", ZipFind) > 1 Then
DoCmd.OpenForm "AddrListForm"
Exit Sub
End If
22.モジュールウィンドウを閉じて、フォームを保存して終了します。
これで、郵便番号に該当する住所が複数ある場合、一覧選択できる様になりました。
試しに、郵便番号に[028-7302]と入力して、[郵便番号<=>住所変換]ボタンを押下して
見て下さい。
岩手県岩手郡松尾村 までが同じで、八幡平温泉郷、松川温泉、寄木 と言う3つの
住所が出てきますね。
ここで真ん中の 岩手県岩手郡松尾村松川温泉 を選択してみて下さい。
住所フォームの住所欄に 岩手県岩手郡松尾村松川温泉 と入りましたか。
今回はここまでです。
次回は郵便番号テーブルのメンテナンス画面を考えてみたいと思います。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ 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.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□