
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に関しては初心者です。
どこを修正すればコードが通るのか教えてください。

No.2ベストアンサー
- 回答日時:
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 とかで返ってくる値を確認してください。
No.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などで検索してみてくだい。
おお!こちらでも出来ました。
変数の宣言はしないで、CreateObjectを使うと言うのが味噌ですね。
cn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=D:\
と言う記述方法も勉強になりました。
VBSの勉強をもってしてみたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6.0とaccessのDBを接続する
-
OracleDataReaderについて…
-
ExcelVBAでのAccessデータベー...
-
初心者ですデータベースの形式 ...
-
クリスタルレポートで文字列の...
-
SQLを発行とは?クエリの作成と...
-
『列名 '担当者CD' があいま...
-
AccessからExcelへエクスポート...
-
DataGridViewに複数テーブルの...
-
VBA 変数名に変数を使用したい。
-
ファイル名の一部削除について
-
VBからID3タグをいじる方法
-
Excel複数シートをaccessへ一括...
-
クリスタルレポート(8.5)の書式...
-
ACCESSのレコード転送について
-
VB6.0 String型→Long型変換方法...
-
Accessのフィールド名に半角括...
-
Redim とEraseの違いは?
-
VB6のメモリ解放に関して
-
C#で文字列を数値に変換する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB】コンボボックスにデータ...
-
VB6.0でSQLServerへ・・・Recor...
-
OracleDataReaderについて…
-
名前'dbOpenDynaset'は宣言され...
-
UPDATE時にSETしたい日本語文字...
-
VB2005でACCESSの処理
-
初心者ですデータベースの形式 ...
-
データベースの接続ができない
-
複数SQL発行について
-
ExcelVBAでのAccessデータベー...
-
ListviewにDB内容を表示し方に...
-
vb.netでデータベース(Access)...
-
MDBをADO接続でINSERT・UPDATE...
-
VBでAccessにSQL文を実行して値...
-
VB6.0でアクセス2000...
-
MSFlexGridでデータの追加の方...
-
VB2005でmdbに接続するには?
-
VB6でデータベースを変えるとテ...
-
ASP.NET(VB.NET)でADO.NETを使...
-
VB6.0とaccessのDBを接続する
おすすめ情報