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も間違っていないと思いますし、何が間違っていると考えられるでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2009/03/22 10:04:36
  • 終了:2009/03/24 06:06:20

ベストアンサー

id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912009/03/22 15:48:48

ポイント100pt

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

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

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

id:akaired

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

2009/03/24 06:06:02

その他の回答(1件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692009/03/22 10:33:03

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

これを

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

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

id:akaired

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

2009/03/24 06:05:58
id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912009/03/22 15:48:48ここでベストアンサー

ポイント100pt

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

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

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

id:akaired

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

2009/03/24 06:06:02

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません