4章 カスタマイズ /4-3フォーム参照で指定範囲を表示する[Access] |
![[郵便番号参照]](Tr04030f.gif)
| <[郵便番号]テーブルの準備> |
| <フォームに範囲指定参照機能を追加> |
Private Sub 新郵便番号_AfterUpdate()
'更新後処理
'[住所1]更新
Dim ctlJyu1 As Control
Set ctlJyu1 = Me![住所1]
Dim ctlMe As Control
Set ctlMe = Me![新郵便番号]
If IsNull(ctlJyu1) Then
ctlJyu1 = ctlMe.Column(1)
Else
If Not (ctlJyu1 Like ctlMe.Column(1) & "*") Then
ctlJyu1 = ctlMe.Column(1)
End If
End If
'[郵便番号範囲]更新
Me![郵便番号範囲] = Me![新郵便番号]
End Sub
Private Sub 新郵便番号_Enter()
'フォーカス取得時
Dim ctlMe As Control
Dim strBuf As String
Set ctlMe = Me![新郵便番号]
If Not IsNull(ctlMe.Text) Then
If Not IsNull(Me![郵便番号範囲]) Then
strBuf = Me![郵便番号範囲] '郵便番号範囲取得
Else
strBuf = "0000000"
End If
With ctlMe
.RowSourceType = "Table/Query" '値集合タイプ
.RowSource = "SELECT * FROM 郵便番号クエリー WHERE 郵便番号7桁 Like '" & strBuf & "*';"
.ColumnCount = 2 '列数
.ColumnHeads = True '列見出し
.ColumnWidths = "2cm;7cm" '列幅
.BoundColumn = 1 '連結列
.ListRows = 8 'リスト行数
.AutoExpand = False '自動拡張
.Requery '再クエリー(上記設定を実行)
End With
End If
End Sub
If Not IsNull(Me![新郵便番号]) Then '
Me![郵便番号範囲] = Me![新郵便番号]
End If
<追加後の内容>
Private Sub Form_Current()
'レコード移動時
apFrmCurrent Me
If Not IsNull(Me![新郵便番号]) Then '
Me![郵便番号範囲] = Me![新郵便番号]
End If
Me![顧客名].SetFocus 'フォームを開いたときのカーソルの位置
End Sub
| |
|