こんばんは
.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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
64bit端末でのOLEDB接続に関して
Oracle
-
VBSでADOを使ってaccessのテーブルに接続
Access(アクセス)
-
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
-
4
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
5
VBAをOracleClientがインストールされていない環境で実行するには?
その他(Microsoft Office)
-
6
VBAでActiveDirectoryのユーザ一覧の取得の仕方
Visual Basic(VBA)
-
7
実行時エラー 3265「要求された名前、または序数
Visual Basic(VBA)
-
8
「データベースまたはオブジェクトは読み取り専用なので、更新できません」エラーについて
その他(データベース)
-
9
Oracle 2つのDate型の値の差を「分」で取得したい
その他(データベース)
-
10
VBSでADO接続に失敗した場合にフリーズする
Visual Basic(VBA)
-
11
コマンドプロンプトで変数が数字であることを判定する方法
その他(プログラミング・Web制作)
-
12
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
13
EXCEL VBAでACCESSに接続時にエラーが出ます
Visual Basic(VBA)
-
14
エクセルVBAでフォームのListboxをスクロールするには?
その他(Microsoft Office)
-
15
ExcelとOracleの連携について
Oracle
-
16
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
17
VBAでアクセスDBからデータの取得について
Visual Basic(VBA)
-
18
Ctrl + Cなど複数の入力キーの感知
Visual Basic(VBA)
-
19
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
20
ttlで戻り値を取得する方法
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
ADOのExecuteメソッドで交互に...
-
ACCESSで値を代入できないとは?
-
String""から型'Double'への変...
-
数式は残し値をクリアするマク...
-
VBAに関して
-
VBA データ(特定値)のある最...
-
ACCESS VBAのSplit()関数の使用...
-
バッチファイルで、あるスクリ...
-
マクロの「SaveAs」でエラーが...
-
On ErrorでエラーNoが0
-
Excel VBA 串刺し計算について
-
VBA エクセル で FIND でのエラ...
-
unityの教科書のゲームを作って...
-
verilog で「*」を使って2の補...
-
ActiveCell.FormulaR1C1の変数
-
オブジェクト型の変数にフォー...
-
Windows7で、Windows updateの...
-
pythonのopenpyxlについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
On ErrorでエラーNoが0
-
VBAでfunctionを利用しようとし...
-
マクロで"#N/A"のエラー行を削...
-
VBA データ(特定値)のある最...
-
実行時エラー 438 の解決策をお...
-
お助けください!VBAのファイル...
-
文字列内で括弧を使うには
-
エクセルVBA 「On Error GoTo...
-
【VBA】ワークブックを開く時に...
-
マクロの「SaveAs」でエラーが...
-
ACCESSで値を代入できないとは?
-
実行時エラー'-2147467259(8000...
-
インポート時のエラー「データ...
-
【VB.NET】 パワポ操作を非表示で
-
Filter関数を用いた結果、何も...
-
UBoundに配列がありませんとエ...
-
Excel vbaについての質問
-
メールの件名のセットでエラー...
おすすめ情報