Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1946 / 13645 ツリー ←次へ | 前へ→

【70868】ADO GED 12/1/10(火) 18:20 発言[未読]
【70869】Re:ADO みそじのおじさん 12/1/10(火) 19:47 発言[未読]
【70870】Re:ADO GED 12/1/10(火) 20:12 発言[未読]
【70871】Re:ADO みそじのおじさん 12/1/10(火) 21:12 発言[未読]
【70909】Re:ADO GED 12/1/16(月) 21:47 発言[未読]
【70910】Re:ADO みそじのおじさん 12/1/16(月) 22:21 発言[未読]

【70868】ADO
発言  GED  - 12/1/10(火) 18:20 -

引用なし
パスワード
   VBAで質問があります。参照設定でADO2.8を適用したとたんに
InputBOX実行時コンパイルエラー:モジュールでなく、変数またはプロシージャを指定して下さいとエラーが表示されてしまいます。

ACCESSからデータを引っ張ってくるために、参照設定でADO2.8を適用したとたんに
InputBOXでコンパイルエラー:モジュールでなく、変数またはプロシージャを指定して下さいとエラーが表示されてしまいます。

【記述内容】
Dim DB As ADODB.Connection
**********************************
Sub DB_open() 'データベースを開く

Set DB = CreateObject("ADODB.connection")
With DB
.Provider = "microsoft.jet.OLEDB.4.0"
.Mode = adModeReadWrite
.ConnectionString = "Data Source= C:\Documents and Settings\●●●"
.Open
'.Close
End With

End Sub
**********************************
Sub DB_close()
On Error Resume Next
DB.Close
Set DB = Nothing
End Sub
**********************************
Sub 抽出貼付け()

Dim 抽出 As ADODB.Recordset
Dim mysql As String
Dim 日程 As Variant 'Date
Dim today As Date

Call DB_open

Call Sample1

'today = Date

'日程 = InputBox("入力してください", "日程", today)

mysql = "●●● ;"

Set 抽出 = DB.Execute(mysql)
ThisWorkbook.Worksheets(1).Cells(2, 1).CopyFromRecordset 抽出

For i = 1 To 抽出.Fields.Count
ThisWorkbook.Worksheets(1).Cells(1, i) = 抽出.Fields(i - 1).Name
Next i

Call DB_close

End Sub
**********************************
Sub Sample1()
Dim buf As String
buf = InputBox("名前を入力してください")
Range("A1") = buf
End Sub

何卒アドバイス宜しくお願い致します。

【70869】Re:ADO
発言  みそじのおじさん  - 12/1/10(火) 19:47 -

引用なし
パスワード
   こんばんは。回答でなくてすみません。

環境を明記しなければ、中々レスがつきづらいと思います。

・excelのバージョン
・OS xp,vista,win7? 32bit or 64bit?
・参照設定したPCとエラーになるPCは同一なのかどうか?
・ADO2.8を参照する前はバージョンは何を使用していたのか?

この辺りを詳しく書きますと識者の方よりすぐ回答がつくと思います。

私がぱっと思いつくのは
・参照設定したPCとエラーになるPCは同一なのかどうか?

で、同一のPCでない場合はADO2.8が入っていない可能性があり
参照不可になっている場合が多いです。
参照設定が不可になっているとそのエラーが多いですね。

32bitのPCから64bitへ移行したときなどは、Providerの指定なんかも関係して
くるみたいですよ。

これは関係ないとは思いますがちょっと気になるのは、参照設定をせっかくしているのに
>Set DB = CreateObject("ADODB.connection")
は、どうなんでしょうかね?

私は参照設定済みなら
Set DB = New ADODB.Connection
にしますけど、、この辺りは関係あるのかなー。ちょっと自信がないです^^;

識者の方の登場をお待ち下さい^^

【70870】Re:ADO
発言  GED  - 12/1/10(火) 20:12 -

引用なし
パスワード
   みそじのおじさん さん回答有難うございます。

初心者のため不備ありますが、フォローして頂けると有難いです。
アドバイス頂きました情報を追記いたします。

・excel 2003
・windows XP 32bit
・参照設定したPCとエラーになるPCは同一です。
・Visual Basic For Applications
 Excel 11.0 liberary Object
 OLE automation
 microsoft Office 11.0 Object Liberary
 microsoft Forms 2.0 Object Liberary
 microsoft Visual Basic for Applications Extensibility 5.3

ここに
ADO2.8 Liberary
を追加しました。

【70871】Re:ADO
発言  みそじのおじさん  - 12/1/10(火) 21:12 -

引用なし
パスワード
   >・参照設定したPCとエラーになるPCは同一です
同一ですか^^;

確認ですが、下記を書く時に参照設定を見られたと思うのですが
>・Visual Basic For Applications
> Excel 11.0 liberary Object
> OLE automation
> microsoft Office 11.0 Object Liberary
> microsoft Forms 2.0 Object Liberary
> microsoft Visual Basic for Applications Extensibility 5.3

参照設定が×になっている項目は間違いなくありませんでしたか?
(一応下までスクロールして見てみて下さい。)

私の方で用意したmdbをADO2.8に参照設定を入れて実行してみましたが
問題なく実行できました。

後このコードは他のバージョンでは実行出来ていたのでしょうか?
2.8に変えた途端実行できなくなったという事でよろしいですか?

【70909】Re:ADO
発言  GED  - 12/1/16(月) 21:47 -

引用なし
パスワード
   たびたびのご回答有難うございます。
返答遅くなり申し訳在りません。
参照設定は、間違いなく以上の項目でした。
ADOをのチェックを外した場合は、inputboxも問題なく動作しました。

【70910】Re:ADO
発言  みそじのおじさん  - 12/1/16(月) 22:21 -

引用なし
パスワード
   こんばんは。

Microsoft ActiveX Data Objects *.* Libraryの
2.0
2.1
2.5
などが入っていますか?
もし入っているなら上記のバージョンに参照設定を入れて実行してみて
もらえますか?
(参照設定の画面に出できていても使えなくなっているLibraryもある
みたいですから、、)

これでもダメならわたしの方はギブですね^^

他のどなたからもレスがなければ、ここを閉じて
mougやAccessClubなどに移られた方がいいと思います^^
一応ここのURLを貼ってもらえると、無駄なやり取りがなくスムーズに
解決出来ると思います。
(両サイトにはプロの方々が揃っています^^)

1946 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free