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

質問編集履歴

5

関連コードを追加

2018/03/15 02:18

投稿

miniryu
miniryu

スコア15

title CHANGED
File without changes
body CHANGED
@@ -143,4 +143,39 @@
143
143
 
144
144
  > ``Me.SurchList`` というように記述しましょう。
145
145
 
146
- 修正させていただきます。ご指摘ありがとうございます。とても助かります。
146
+ 修正させていただきます。ご指摘ありがとうございます。とても助かります。
147
+
148
+ ### 追記5
149
+
150
+ 今回の問題に関係があるかもしれませんので、別のモジュールに書かれてあるコードを併載させていただきます。
151
+ どうぞよろしくお願いします。
152
+
153
+ ```vba
154
+ Option Explicit
155
+
156
+ '---ACCESS接続用
157
+ Private adoCn As Object
158
+ Private adoRs As Object
159
+ Private strSQL As String
160
+
161
+ 'データベースに接続
162
+ Sub ConnectDB(flg As Boolean)
163
+ Dim DBpath As String
164
+
165
+ 'DBpath = ThisWorkbook.Path
166
+ DBpath = "\○○○\○○○\○○○"
167
+ If flg = True Then Set adoRs = CreateObject("ADODB.Recordset")
168
+
169
+ Set adoCn = CreateObject("ADODB.Connection")
170
+ adoCn.Open "Provider = Microsoft.ACE.OLEDB.12.0;Data Source = " & DBpath & "\○○○.mdb;"
171
+ End Sub
172
+
173
+ 'データベースを切断
174
+ Sub CutDB(flg As Boolean)
175
+
176
+ If flg = True Then adoRs.Close
177
+ adoCn.Close
178
+ Set adoRs = Nothing
179
+ Set adoCn = Nothing
180
+ End Sub
181
+ ```

4

追記4を追加

2018/03/15 02:18

投稿

miniryu
miniryu

スコア15

title CHANGED
File without changes
body CHANGED
@@ -105,4 +105,42 @@
105
105
  プロパティのオブジェクト名は一致しているのですが、うまく行きません……
106
106
  スペルミスのご指摘ありがとうございます。恥をかかずにすみました。
107
107
 
108
- ただ、まだ解決には至っておりません……
108
+ ただ、まだ解決には至っておりません……
109
+
110
+ ### 追記4(2018/03/15)
111
+
112
+ > まず、デバッグするときは、エラー処理はコメントにしましょう。
113
+
114
+ ご指摘のとおりしましたところ、次の行にエラーが出ておりました。
115
+
116
+ ```vba
117
+ adoRs.Open strSQL, adoCn
118
+ ```
119
+ ``strSQL = "SELECT 顧客コード,姓,名,住所1,住所2,電話番号1,電話番号2 FROM 顧客マスター"``のすぐ下の行です。
120
+
121
+ エラーメッセージは次のとおりです。
122
+ **実行エラー'91':**
123
+ **オブジェクト変数またはWithブロック変数が設定されていません。**
124
+
125
+ > どのような「検索」がしたいのですか。言葉で説明してみてください。
126
+ 特に検索対象フィールドは何か、どのような条件で検索するのかを説明してください。
127
+
128
+ 検索対象フィールドは
129
+ **「姓」「セイ」「電話番号1」「電話番号2」**
130
+ というのを想定しています。
131
+
132
+ リストボックスに表示させたいフィールドが
133
+ **「顧客コード」「姓」「名」「住所1」「住所2」「電話番号1」「電話番号2」**
134
+ でした。
135
+
136
+ 検索条件についてですが、
137
+ **1つめのテキストボックスに「姓」または「セイ」を入力する**
138
+ **2つめのテキストボックスに「電話番号」を入力する**
139
+ ということを想定しています。
140
+
141
+ **このうちのいずれかがデータと一致**していたら、検索結果が表示されるようにしたいです。
142
+ テキストボックスは2つ用意してますが、使用するのは基本的にどちらか1つで、より絞り込んで検索したい場合は2つとも使用する、というふうに考えております。
143
+
144
+ > ``Me.SurchList`` というように記述しましょう。
145
+
146
+ 修正させていただきます。ご指摘ありがとうございます。とても助かります。

3

引き続き、リストボックスについて

2018/03/15 01:31

投稿

miniryu
miniryu

スコア15

title CHANGED
File without changes
body CHANGED
@@ -92,4 +92,17 @@
92
92
 
93
93
  ○○ には CreatObject("△△")を使うということで合っていますでしょうか?
94
94
 
95
- 取り急ぎコメントしております。自分でもここら辺のことを調べてみます。
95
+ 取り急ぎコメントしております。自分でもここら辺のことを調べてみます。
96
+
97
+ (追記3)
98
+ > おそらくadoRsはConnectDB関数の中で操作しているはずです。
99
+
100
+ おっしゃる通りで、確認できました。
101
+
102
+ >SurchListは画面上に貼り付けたリストボックスのはずです。
103
+
104
+ これもその通りです(上記質問では説明不足ですみません)。ユーザーフォームに貼り付けています。
105
+ プロパティのオブジェクト名は一致しているのですが、うまく行きません……
106
+ スペルミスのご指摘ありがとうございます。恥をかかずにすみました。
107
+
108
+ ただ、まだ解決には至っておりません……

2

オブジェクトについて

2018/03/14 09:03

投稿

miniryu
miniryu

スコア15

title CHANGED
File without changes
body CHANGED
@@ -67,7 +67,7 @@
67
67
  End Sub
68
68
  ```
69
69
 
70
- 追記
70
+ 追記
71
71
 
72
72
  Dim SurchList As Object を追加してみましたが、やはり同じ症状でした。。
73
73
 
@@ -76,4 +76,20 @@
76
76
  「オブジェクト変数またはWithブロック変数が設定されていません。
77
77
  SELECT 顧客コード,姓,名,住所1,住所2,電話番号1,電話番号2 FROM 顧客マスター」
78
78
 
79
- 該当箇所は書籍やネットを参照した感じだと、これで合ってそうなので、どう間違っているのか分かりません。
79
+ 該当箇所は書籍やネットを参照した感じだと、これで合ってそうなので、どう間違っているのか分かりません。
80
+
81
+
82
+ (追記2)
83
+ なるほど。オブジェクトについてよく理解していませんでした。
84
+
85
+ Set adoRs = ○○
86
+ Set SurchList = ○○
87
+
88
+ という記述が必要だということでよろしいでしょうか?
89
+
90
+ (追記2-2)
91
+ > set SurchList = ○○ ←インスタンス(実体)への参照を作る
92
+
93
+ ○○ には CreatObject("△△")を使うということで合っていますでしょうか?
94
+
95
+ 取り急ぎコメントしております。自分でもここら辺のことを調べてみます。

1

SurchListの宣言を記述しての結果、イミディエイトウィンドウに表示されていたテキストを追記しました。

2018/03/14 07:20

投稿

miniryu
miniryu

スコア15

title CHANGED
File without changes
body CHANGED
@@ -65,4 +65,15 @@
65
65
  Debug.Print strSQL
66
66
 
67
67
  End Sub
68
- ```
68
+ ```
69
+
70
+ 追記
71
+
72
+ Dim SurchList As Object を追加してみましたが、やはり同じ症状でした。。
73
+
74
+ さきほど気づいたのですが、イミディエイトウィンドウに以下のテキストが表示されていました。
75
+
76
+ 「オブジェクト変数またはWithブロック変数が設定されていません。
77
+ SELECT 顧客コード,姓,名,住所1,住所2,電話番号1,電話番号2 FROM 顧客マスター」
78
+
79
+ 該当箇所は書籍やネットを参照した感じだと、これで合ってそうなので、どう間違っているのか分かりません。