郵便番号参照コンボボックス作成[Access]
|
郵便番号テーブルを参照するコンボボックスを作成します。郵便番号から参照するコンボボックスと、住所から参照するコンボボックスを作ることができます。
![[顧客]フォーム](Tr04030k.gif)
- 準備
- 郵便番号参照コンボボックス作成
- 住所参照コンボボックス作成
- 郵便番号テーブル
Soraセットアップ先(C:\Program Files\Sora)にある郵便番号データベース(SoraYbn.mdb)の[郵便番号]テーブルをリンクします。
- 郵便番号クエリー
Soraセットアップ先(C:\Program Files\Sora)にある郵便番号データベース(SoraYbn.mdb)の[郵便番号クエリー]クエリーをインポートします。
SELECT 郵便番号.郵便番号7桁, [都道府県名] & [市区町村名] & [その他] AS 住所全体 FROM 郵便番号;
Soraフォームに[ComboYubin]コンボボックスを作成します。
[TextYubin]テキストボックスを作成します。コントロールソースを郵便番号のフィールドに設定します。
[TextJyusho]テキストボックスを作成します。コントロールソースを住所のフィールドに設定します
(Sora標準システム(APW97Smp.mdb)の[顧客]フォームにある[ComboYubin]コンボボックス等をコピーする方法が簡単です。)
[ComboYubin]コンボボックスの[更新後処理]、[フォーカス取得時]イベントに下記のイベントプロシージャを追加します。
(Sora標準システム(APW97Smp.mdb)の[顧客]フォームにあるイベントプロシージャをコピーする方法が簡単です。)
Private Sub ComboYubin_AfterUpdate()
'郵便番号コンボボックス:更新後処理
Dim ctlTextY As TextBox
Set ctlTextY = Me![TextYubin] '郵便番号
Dim ctlTextJ As TextBox
Set ctlTextJ = Me![TextJyusho] '住所
Dim ctlMe As ComboBox
Set ctlMe = Me![ComboYubin] '郵便番号コンボボックス
'[住所]更新
If IsNull(ctlTextJ) Then
ctlTextJ = ctlMe.Column(1)
Else
If Not (ctlTextJ Like ctlMe.Column(1) & "*") Then
ctlTextJ = ctlMe.Column(1)
End If
End If
'[郵便番号]更新
ctlTextY = ctlMe.Column(0)
ctlTextJ.SetFocus
End Sub
Private Sub ComboYubin_Enter()
'郵便番号コンボボックス:フォーカス取得時
Dim ctlTextY As TextBox
Set ctlTextY = Me![TextYubin] '郵便番号
Dim strBuf As String
Dim ctlMe As ComboBox
Set ctlMe = Me![ComboYubin] '郵便番号コンボボックス
If Not IsNull(ctlTextY) Then
strBuf = Left(ctlTextY, 3) '郵便番号取得
ctlMe = ctlTextY
Else
strBuf = "1" '郵便番号省略値
End If
With ctlMe
.RowSourceType = "Table/Query" '値集合タイプ
.ColumnCount = 2 '列数
.BoundColumn = 1 '連結列
.ListRows = 8 'リスト行数
.AutoExpand = False '自動拡張
.RowSource = "SELECT * FROM 郵便番号クエリー WHERE 郵便番号7桁 Like '" & strBuf & "*';"
' .Dropdown '不要
End With
End Sub
Soraフォームに[ComboJyusho]コンボボックスを作成します。コントロールソースが郵便番号のフィールドの[TextYubin]テキストボックスを作成します。コントロールソースが住所のフィールドの[TextJyusho]テキストボックスを作成します。
(Sora標準システム(APW97Smp.mdb)の[顧客]フォームにある[ComboJyusho]コンボボックス等をコピーする方法が簡単です。)
[ComboJyusho]コンボボックスの[更新後処理]、[フォーカス取得時]イベントに下記のイベントプロシージャを追加します。
(Sora標準システム(APW97Smp.mdb)の[顧客]フォームにあるイベントプロシージャをコピーする方法が簡単です。)
Private Sub ComboJyusho_AfterUpdate()
'住所コンボボックス:更新後処理
Dim ctlTextJ As TextBox
Set ctlTextJ = Me![TextJyusho] '住所
Dim ctlTextY As TextBox
Set ctlTextY = Me![TextYubin] '郵便番号
Dim ctlMe As ComboBox
Set ctlMe = Me![ComboJyusho] '住所コンボボックス
'住所[TextJyusho]更新
If IsNull(ctlTextJ) Then
ctlTextJ = ctlMe.Column(0)
Else
If Not (ctlTextJ Like ctlMe.Column(0) & "*") Then
ctlTextJ = ctlMe.Column(0)
End If
End If
'[郵便番号]更新
ctlTextY = ctlMe.Column(1)
ctlTextJ.SetFocus
End Sub
Private Sub ComboJyusho_Enter()
'住所コンボボックス:フォーカス取得時
Dim ctlTextJ As TextBox
Set ctlTextJ = Me![TextJyusho] '住所
Dim strBuf As String
Dim ctlMe As ComboBox
Set ctlMe = Me![ComboJyusho] '住所コンボボックス
If Not IsNull(ctlTextJ) Then
strBuf = Left(ctlTextJ, 5) '住所取得
ctlMe = ctlTextJ
Else
strBuf = "東京" '住所省略値
End If
With ctlMe
.RowSourceType = "Table/Query" '値集合タイプ
.ColumnCount = 2 '列数
.BoundColumn = 1 '連結列
.ListRows = 8 'リスト行数
.AutoExpand = False '自動拡張
.RowSource = "SELECT 住所全体, 郵便番号7桁 FROM 郵便番号クエリー WHERE 住所全体 Like '" & strBuf & "*';"
' .Dropdown '不要
End With
End Sub