
こんばんは
.vbsファイルからデータベースを操作しようとして躓いています。
エクセルvbaでは動いているのに、.vbsに移植するとエラーが出てしまいます。
エラーの内容は「プロバイダーが見つかりません。正しくインストールされていない可能性があります。」です。
次のスクリプトです。
'ここから
Dim ADO_CONNECT
Dim MDBName
Dim dbCon
Dim strSQL
ADO_CONNECT = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
MDBName = WScript.Arguments(0) 'エクセルVBAの場合はハードコード
Set dbCon = CreateObject("ADODB.Connection")
dbCon.Open ADO_CONNECT & MDBName & ";"
strSQL = "命令文"
dbCon.Execute (strSQL)
'ここまで
プロバイダーの場所、バージョン、32/64ビット、あたりに問題がのかもしれませんが、調べてもよくわかりません。エクセルVBAでは動作するので、参照設定?の違いなのかもしれません。どのように解決したら良いでしょうか。
Win 7 Pro 64bit
MS Accessなし
Excel 2007 あり
No.1ベストアンサー
- 回答日時:
スクリプトを32bit版ファイラーから試すと問題ありませんでした。
が、Explorer (64bitで動作)から試すと同じエラーになりました。
Explorer 64bit で動作
↓
Wscript も64bitが呼ばれる
↓
ADODB の64bit版は存在しないのでエラー発生の流れかと思います。
(Win7 64bit & Office 2010 64bit でもほんの少しだけ確認)
なので、
http://d.hatena.ne.jp/KenKens/20140312/1394641831
の中ほどにあるように32bit版で起動しなおすようにすれば解決するものと思われます。
感謝です!!
やはりそういうことでしたか。これ、本当にやっかいですね。
リンク先もよく読んでみました。そもそも今回の単発スクリプトのために改造する意味がありませんでしたので、次の流れで解決しました。
vbsファイルにデータベースファイルをドラッグアンドドロップ
vbsファイルでファイルパスを取得した上で、別のエクセルファイルを起動してそこのマクロに引数としてパスを渡し、マクロの中で処理をしてもらうことになりました。
実際、SQLも1行だけで、ドラッグアンドドロップでデータの一部だけを置き換えるための手抜きのためのスクリプトだったわけで、これで解決としたいと思います。
また賢くなりました。ほんと、皆さんのおかげです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) マクロの付いたExcelが開けません 3 2023/02/01 10:54
- Microsoft ASP C#からvbsを実行したい 5 2022/11/24 17:31
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- その他(プログラミング・Web制作) VBSでExcelファイル起動時、重複しても開くのを止めたい 1 2022/10/01 23:20
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Visual Basic(VBA) VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について 3 2022/03/23 19:45
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
このQ&Aを見た人はこんなQ&Aも見ています
-
64bit端末でのOLEDB接続に関して
Oracle
-
ADOのCursorLocationプロパティ
Visual Basic(VBA)
-
VBAをOracleClientがインストールされていない環境で実行するには?
その他(Microsoft Office)
-
-
4
データベース関係で、データの洗い替えとはどのような事を行うことでしょう
IT・エンジニアリング
-
5
EXCEL VBAでACCESSに接続時にエラーが出ます
Visual Basic(VBA)
-
6
データソース名および指定された既定のドライバが見つかりません。
Oracle
-
7
VB.NET Oracle接続 32、64bit
Oracle
-
8
SQLでエラーです。
Visual Basic(VBA)
-
9
Oracleへのリンクサーバー設定について
SQL Server
-
10
ADO VBA 実行時エラー3021
Visual Basic(VBA)
-
11
DB接続ができなくなって困っています!
その他(データベース)
-
12
64bitのwindowsサーバーで32bit用のコマンドを使用する場
その他(プログラミング・Web制作)
-
13
実行時エラー -2147217900 ADODBでレコードセットオープン時エラー
Access(アクセス)
-
14
参照設定は2.8と6.0 6.1とどちらにチェッ
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでfunctionを利用しようとし...
-
お助けください!VBAのファイル...
-
文字列内で括弧を使うには
-
DBへのINSERT時に実行時エラー...
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
フランスの生年月日(jj/mm/aaaa)
-
マクロOn Error GoTo ErrLabel...
-
Filter関数を用いた結果、何も...
-
【VB.NET】 パワポ操作を非表示で
-
UWSCでエラー発生時の対処法に...
-
【VBA】ワークブックを開く時に...
-
Excel vbaについての質問
-
INSERT INTOステートメント構文...
-
【VBAエラー】Nextに対するFor...
-
演算子が DBnull 及び integer...
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
【マクロ】全シートでまとめて...
-
VBAの構文エラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
【VBA】ワークブックを開く時に...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
ApplicationとWorksheetFunctio...
-
【Access】Excelインポート時に...
-
インポート時のエラー「データ...
-
実行時エラー 438 の解決策をお...
-
オブジェクト型の変数にフォー...
-
.VBSだとADODBのプロバイダが見...
-
実行時エラー'-2147467259(8000...
-
【VB.NET】 パワポ操作を非表示で
-
フランスの生年月日(jj/mm/aaaa)
-
【VBAエラー】Nextに対するFor...
おすすめ情報