みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBSでADOを使ってaccessのテーブルに接続

VBSでADOを使ってaccessのテーブルに接続する方法は?

Sub ADO_test()

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & "D:\【Access】サンプル.mdb"
rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic

MsgBox "test成功です"

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing

End Sub

をACCESSVBAで実行すると成功しますが
全く同じコードをメモ帳に貼り付けてtest.vbsで保存し、ダブルクリックすると、

行:3
文字:11
エラー:ステートメントの末尾が不正です。
コード:800A0401

のエラーになります。

VBAは少しわかるのですが、VBSに関しては初心者です。
どこを修正すればコードが通るのか教えてください。

投稿日時 - 2012-10-16 20:43:24

QNo.7751794

暇なときに回答ください

質問者が選んだベストアンサー

Dim cn 'データ型の指定は出来ません。VBSにお任せになります
Dim rs
const adOpenKeyset = 1
const adLockOptimistic = 3
set cn=createobject("adodb.connection") 'Accessのように参照設定は出来ないので此処で
set rs=createobject("adodb.recordset")

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & "D:\【Access】サンプル.mdb"
rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic 'Accessの定数名では指示できないので実数で
'rs.Open "テーブル1", cn, 1, 3 'これだと後で見ても分からないので、Const で宣言
MsgBox "test成功です"
msgbox rs(0)
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing

かな?
定数の実際の値はイミディエイトウィンドウで
?adOpenStatic とかで返ってくる値を確認してください。

投稿日時 - 2012-10-16 23:17:51

お礼

ぉぉ!
うまくいきました!
感動です。

Sub ()
End Sub
はなくてもいいんですね。ありがとうございました。

投稿日時 - 2012-10-17 19:54:05

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

以下をテキストに貼り付け、拡張子をvbsで
保存して実行してみてください。


Dim cn
Dim rs
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=D:\【Access】サンプル.mdb;"
rs.Open "SELECT * FROM テーブル1", cn
msgbox "接続"

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing




vbsはコードの書き方が少し違います。たとえば変数の
型は指定できません。その他もろもろがあります。
VBScript、あるいはWSHなどで検索してみてくだい。

投稿日時 - 2012-10-16 23:20:52

お礼

おお!こちらでも出来ました。

変数の宣言はしないで、CreateObjectを使うと言うのが味噌ですね。

cn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=D:\
と言う記述方法も勉強になりました。

VBSの勉強をもってしてみたいと思います。
ありがとうございました。

投稿日時 - 2012-10-17 19:54:21

ANo.1

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & "D:\【Access】サンプル.mdb"



cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & """D:\【Access】サンプル.mdb"""

とすると、どうなりますか?

投稿日時 - 2012-10-16 21:32:48

お礼

"""にしてみましたが、さっきと変らずでした。せっかくご回答いただいたのにすいません。

投稿日時 - 2012-10-16 22:14:25

あなたにオススメの質問