人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Cドライブ直下にa.mdbとb.mdbがあります。下記のコードはa.mdbに書かれたコードです。
b.mdbに接続してb.mdbのテーブルを操作したいと思っています。b.mdbのABCテーブルに
データを挿入したいと思っています。フィールド数、型などはあっています。

Public geter As Dao.Database
Dim filename As String
Dim rs1 As DAO.Recordset
Dim sql As String
sql = "Insert into ABC Values('1','2','','','3')"

filename = "C:\b.mdb"
Set geter = OpenDatabase(filename)
Set rs1 = geter.openrecordset(sql,dbOpenDynaset)
と行うと上記のset rs1=geter.open...の所で次のエラーが発生します。
実行時エラー 3219 無効な処理です
SQLも間違っていないと思いますし、何が間違っていると考えられるでしょうか?

●質問者: akaired
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:ABC as MDB open SET
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● SALINGER
●100ポイント
Set rs1 = geter.openrecordset(sql,dbOpenDynaset)

これを

geter.Execute (sql)
Set rs1 = geter.OpenRecordset(ABC, dbOpenDynaset)

と2行に分けるといいです。

◎質問者からの返答

ご回答ありがとうございます!!Excuteしたら問題なくできました!


2 ● Mook
●100ポイント ベストアンサー

クエリを実行するのと、レコードセットを制御するのはデータベースに対する異なる制御の方法です。

それぞれ下記のように実行できます。

Sub addDataByQuery()
 Dim getter As DAO.Database
 Set getter = OpenDatabase("C:\Work\AccessTest\b.mdb")
 
'// 方法1:SQL を実行してデータを挿入する方法
 getter.Execute "Insert into ABC Values('1','2','','','3')"
 getter.Execute "Insert into ABC Values('2','2','','','3')"
 getter.Execute "Insert into ABC Values('3','2','','','3')"
End Sub

Sub addDataByRecordSet()
 Dim getter As DAO.Database
 Set getter = OpenDatabase("C:\Work\AccessTest\b.mdb")
 
'// 方法2:Recordset を使用してデータを挿入する方法
 Dim rs1 As DAO.Recordset
 Set rs1 = getter.OpenRecordset("ABC", dbOpenDynaset)

 rs1.AddNew  '// 新しいレコードの追加
 rs1.Fields(1) = "1"  '// データの設定
 rs1.Fields(2) = "2"
 rs1.Fields(5) = "3"
 rs1.Update  '// データの反映
End Sub

http://www.accessclub.jp/dao/12.html

◎質問者からの返答

ご回答ありがとうございます!!Excuteしたら問題なくできました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ