回答編集履歴

5

リンク先追加

2018/03/15 02:43

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -88,4 +88,12 @@
88
88
 
89
89
 
90
90
 
91
+ 上記のリンク先はAccess VBAなので、Excelなら、下記のほうがいいかな。
92
+
93
+
94
+
95
+ [テーブルへの接続とレコードの取得 \- 覚え書き ExcelVBAでデータベース操作](http://antonsan.net/study/excel/excel004.php)
96
+
97
+
98
+
91
99
  それでわからなければ、ConnectDB関数のコードを提示してください。ただ、やり取りが長くなったので、新規に質問しなおしたほうがいいかも知れませんね。

4

追記2

2018/03/15 02:43

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -67,3 +67,25 @@
67
67
 
68
68
 
69
69
  同様に、`TextBox1.Value` も `Me.TextBox1.Value` と記述したほうが読みやすい紛れのないコードになります。
70
+
71
+
72
+
73
+ 追記2
74
+
75
+ ---
76
+
77
+ `adoRs.Open strSQL, adoCn` でエラーがでるとのことなので、`adoRs` か `adoCn` が正しく生成されていないということだと思われます。
78
+
79
+
80
+
81
+ 質問者さんの追記で「おそらくadoRsはConnectDB関数の中で操作しているはずです。」との指摘にたいして、「確認できました。」と回答してますので、そのConnectDB関数内のコードに問題があるはずです。ADOのコネクション、レコードセットに生成、開き方については、いろいろな方法がありますが、ネット検索すれば、サンプルコードが多く見つかるので、それと現状のConnectDB関数内のコードを比較して、間違いを探してください。
82
+
83
+ 例えば、下記は「ADO レコードセット 開く」でググって最初に出てくるものです。
84
+
85
+
86
+
87
+ [アクセスVBA講座\_ADO\_Recordsetオブジェクトの作成](http://www.geocities.jp/cbc_vbnet/ADO/recordset.html)
88
+
89
+
90
+
91
+ それでわからなければ、ConnectDB関数のコードを提示してください。ただ、やり取りが長くなったので、新規に質問しなおしたほうがいいかも知れませんね。

3

書式の改善

2018/03/15 02:17

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -40,7 +40,11 @@
40
40
 
41
41
 
42
42
 
43
+ ```vba
44
+
43
45
  If strSQL Like "*" & TextBox1.Value & "*" Or strSQL Like "*" & TextBox2.Value & "*" Then '検索が一致すれば(結果をリストボックスに表示)
46
+
47
+ ```
44
48
 
45
49
 
46
50
 

2

コード追加

2018/03/14 12:15

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  `SurchList` というのはフォーム上のリストボックスですか。だとしたら、
60
60
 
61
- `Me.SurchList` というように記述しましょう。そうすれば、フォーム上のコントロールだと他人にも分かります。フォーム上のコントロールなら、`Set SurchList = ○○` というコードは必要ないです。すでに実体が存在しているので。
61
+ `Me.SurchList` というように記述しましょう。そうすれば、フォーム上のコントロールだと他人にも分かります。フォーム上のコントロールなら、`Dim SurchList As Object` `Set SurchList = ○○` というコードは必要ないです。すでにフォーム上に実体が存在しているので。
62
62
 
63
63
 
64
64
 

1

追記の追加

2018/03/14 12:13

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -16,12 +16,50 @@
16
16
 
17
17
 
18
18
 
19
- そして、実行してください。エラーが出たときにどの行が反転表示されるか、
19
+ そして、実行してください。エラーが出たときに**どの行が反転表示**されるか、
20
20
 
21
21
  提示してください。
22
22
 
23
- あと、正確なエラーメッセージも提示してください。
23
+ あと、**正確なエラーメッセージ**も提示してください。
24
24
 
25
25
 
26
26
 
27
27
  話は、それからです。
28
+
29
+
30
+
31
+ 追記
32
+
33
+ ---
34
+
35
+
36
+
37
+ **指摘1**
38
+
39
+ 今回のエラーと関係ないですが、下記はあきらかに間違いです。
40
+
41
+
42
+
43
+ If strSQL Like "*" & TextBox1.Value & "*" Or strSQL Like "*" & TextBox2.Value & "*" Then '検索が一致すれば(結果をリストボックスに表示)
44
+
45
+
46
+
47
+ strSQL はただの文字列です。これを Likeで比較しても検索などできません。
48
+
49
+
50
+
51
+ どのような「検索」がしたいのですか。言葉で説明してみてください。
52
+
53
+ 特に検索対象フィールドは何か、どのような条件で検索するのかを説明してください。
54
+
55
+
56
+
57
+ **指摘2**
58
+
59
+ `SurchList` というのはフォーム上のリストボックスですか。だとしたら、
60
+
61
+ `Me.SurchList` というように記述しましょう。そうすれば、フォーム上のコントロールだと他人にも分かります。フォーム上のコントロールなら、`Set SurchList = ○○` というコードは必要ないです。すでに実体が存在しているので。
62
+
63
+
64
+
65
+ 同様に、`TextBox1.Value` も `Me.TextBox1.Value` と記述したほうが読みやすい紛れのないコードになります。