![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんばんは
.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
-
EXCEL VBAでACCESSに接続時にエラーが出ます
Visual Basic(VBA)
-
VBSでADOを使ってaccessのテーブルに接続
Access(アクセス)
-
-
4
Ctrl + Cなど複数の入力キーの感知
Visual Basic(VBA)
-
5
VBAでActiveDirectoryのユーザ一覧の取得の仕方
Visual Basic(VBA)
-
6
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
7
ASP(VBS) ←→ JavaScript の変数値のやりとり
JavaScript
-
8
ASPからACCESSのOPENどうしても出来ません
Microsoft ASP
-
9
Oracle 2つのDate型の値の差を「分」で取得したい
その他(データベース)
-
10
VB6(SP5)+OO4OでCreateObjectが失敗する
Visual Basic(VBA)
-
11
ExcelVBAでのAccessデータベースとの接続
Visual Basic(VBA)
-
12
VBA テキストファイルを読み取り専用で開くには
Visual Basic(VBA)
-
13
ExcelとOracleの連携について
Oracle
-
14
エクセルVBAでフォームのListboxをスクロールするには?
その他(Microsoft Office)
-
15
SQLPLUSで結果を画面に表示しない
Oracle
-
16
ActiveDirectoryから値を取得
Visual Basic(VBA)
-
17
VBAでアクセスDBからデータの取得について
Visual Basic(VBA)
-
18
ttlで戻り値を取得する方法
その他(プログラミング・Web制作)
-
19
vba 時間の引き算 例えば 15:00から16:15の間の時間は1時間15分ですが、vbaのコード
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
VBA 都道府県から市を選択し詳...
-
フランスの生年月日(jj/mm/aaaa)
-
VBAのエラーについて
-
【VBAエラー】Nextに対するFor...
-
CreateObjectでエラー発生(Exc...
-
オブジェクト型の変数にフォー...
-
LaTeXのエラーについて(コンパ...
-
エクセルVBA で、実行時エラー9...
-
グラフを表示するとき「’~’メソ...
-
VBA エクセル で FIND でのエラ...
-
HTMLソースが表示のページのも...
-
CDatabase::ExecuteSQL()について
-
VBAでfunctionを利用しようとし...
-
エクセル 足し算引き算で 空...
-
VBスクリプトでIEの404 not fou...
-
実行時エラー9:インデックス...
-
VBAコード実行を中止する方法は...
-
【VBA】ワークブックを開く時に...
-
ACCESSで値を代入できないとは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
実行時エラー 438 の解決策をお...
-
On ErrorでエラーNoが0
-
お助けください!VBAのファイル...
-
VBA データ(特定値)のある最...
-
インポート時のエラー「データ...
-
実行時エラー'-2147467259(8000...
-
ACCESSで値を代入できないとは?
-
VB.net 重複チェックがしたいです
-
ActiveCell.FormulaR1C1の変数
-
ApplicationとWorksheetFunctio...
-
「実行時エラー '3167' レコー...
-
【VB.NET】 パワポ操作を非表示で
-
フランスの生年月日(jj/mm/aaaa)
-
【マクロ】 IFERROR関数をマク...
おすすめ情報