リレーション(関連付け)
ワークシートの追加
Excelのワークシートを一枚追加し、シート名を「関連付け」とします。
B2セルから順番に氏名、郵便番号、住所、電話番号、会社コード、会社コード、勤務先名、郵便番号、住所、電話番号とします。
F2とF3は結合してもかまいません。
各セルの幅は後で調整しますので、幅に拘らなくてかまいません。
F列は表示しないように設定しておきます。F列全体を選択し、右クリックでダイアログを表示させて「表示しない(H)」をクリックします。
関連付けボタン
ワークシートにラベルを一つとコントロールボタンを一つ貼り付け、オブジェクト名を「btn関連付け」、Captionを「リレーション」とします。
「リレーション」ボタンをダブルクリックしてコードウィンドウを開き、次のプログラムを記述します。 01:Private Sub btn関連付け_Click() 02: Dim reccount As Long 03: Dim where_status As String 04: Dim statements As Integer 05: 06: statements = Database_open 07: If (statements <> 0) Then 08: Exit Sub 09: End If 10: 11: Worksheets("関連付け").Activate 12: where_status = "WHERE addresstb2.k_code = k_addresstb.k_code" 13: reccount = Table_ALLload("addresstb2,k_addresstb", _ 14: "B3", where_status) 15: statements = Database_close 16:End Sub標準モジュールのユーザー関数を開き、次のプログラムを記述します。 01:Function Table_ALLload(Table_name As String, _ 02: cell_number As String, where_status As String) As Long 03: Dim sql As String 04: On Error GoTo ERR_statements 05: 06: Set record_set = New ADODB.Recordset 07: 08: sql = "SELECT * FROM " & Table_name & " " & where_status 09: record_set.Open sql, connect 10: If (record_set.EOF = False) Then 11: record_set.MoveFirst 12: Range(cell_number).CopyFromRecordset record_set 13: Table_ALLload = Range(cell_number).End(xlDown).Row - 1 14: If (Table_ALLload = CELL_END) Then 15: Table_ALLload = 1 16: End If 17: Else 18: Table_ALLload = 0 19: End If 20: record_set.Close 21: 22:ERR_statements: 23: If (Err.Number <> 0) Then 24: Call MsgBox("一致レコードがありません。") 25: End If 26: Set record_set = Nothing 27:End Function
![]()
![]()
![]()
© AstroHeart. All Rights Reserved.