質問するログイン新規登録

回答編集履歴

2

コードの修正

2018/03/15 13:04

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -58,6 +58,7 @@
58
58
  .List(cnt,5) = adoRs(5).Value
59
59
  .List(cnt,6) = adoRs(6).Value
60
60
  adoRs.MoveNext
61
+ cnt = Cnt + 1
61
62
  Loop
62
63
  End With
63
64
  End If

1

サンプルコードの追加

2018/03/15 13:04

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -14,4 +14,60 @@
14
14
 
15
15
  複数列のリストボックスの作成は下記が参考になるでしょう。
16
16
 
17
- [Office TANAKA - Excel VBA Tips[複数列のリストボックス]](http://officetanaka.net/excel/vba/tips/tips158.htm)
17
+ [Office TANAKA - Excel VBA Tips[複数列のリストボックス]](http://officetanaka.net/excel/vba/tips/tips158.htm)
18
+
19
+ サンプルコード
20
+ ---
21
+
22
+ 条件の詳細な仕様が不明なので、部分一致で、(姓, セイ) と (電話番号1, 電話番号2) はAND条件 と仮定してます。
23
+
24
+ ```vba
25
+ '---ユーザーを検索
26
+ Sub SearchButton_Click()
27
+ Dim strSQL As String
28
+ Dim cnt As long
29
+ ' On Error GoTo Err_Handler 'エラーが起きたら"Err_Handler"へ
30
+ Call ConnectDB 'データベースに接続
31
+
32
+ strSQL = "SELECT 顧客コード,姓,名,住所1,住所2,電話番号1,電話番号2, セイ FROM 顧客マスター"
33
+ adoRs.Open strSQL, adoCn
34
+
35
+ If adoRs.BOF And adoRs.EOF Then 'データがない場合、データベースを切断して終了
36
+ Call CutDB
37
+ MsgBox "参照先にデータがありません。"
38
+ Exit Sub
39
+ End If
40
+
41
+ '抽出条件を設定してフィルタをかける
42
+ adoRs.Filter = "姓 & メイ Like '%" & Me.TextBox1.Value & "%'" & _
43
+ " AND 電話番号1 & ";" & 電話番号2 Like '%" & Me.TextBox1.Value & "%'"
44
+ If adoRs.BOF AND adoRs.EOF Then
45
+ Call CutDB
46
+ MsgBox "条件に一致するデータがありません。"
47
+ Else
48
+ With Me.SearchList '該当したレコードをリストボックスに表示する
49
+ .ColumnCount = 7 '列数 7
50
+ .ColumnWidths = "10;30;30;100;50;50" '列幅を設定
51
+ Do Until adoRs.EOF '抽出したレコードが終了するまで繰り返す
52
+ .AddItem ""
53
+ .List(cnt,0) = adoRs(0).Value
54
+ .List(cnt,1) = adoRs(1).Value
55
+ .List(cnt,2) = adoRs(2).Value
56
+ .List(cnt,3) = adoRs(3).Value
57
+ .List(cnt,4) = adoRs(4).Value
58
+ .List(cnt,5) = adoRs(5).Value
59
+ .List(cnt,6) = adoRs(6).Value
60
+ adoRs.MoveNext
61
+ Loop
62
+ End With
63
+ End If
64
+
65
+ Call CutDB '検索がすんだら、データベースを切断して終了
66
+ Exit Sub
67
+
68
+ Err_Handler: 'エラーが起きたときの飛び先
69
+ Call CutDB
70
+ MsgBox Error$
71
+
72
+ End Sub
73
+ ```