ADOの切断

解決


ニャロメ  2006-10-28 01:58:27  No: 97061

宜しくお願いします

VB6.0でADOに接続してACCESSにデータを追加して
オブジェクトを閉じるとエラーになってしまう原因が知りたいです。

【詳細説明】
実行時エラー'3704'
オブジェクトが閉じてる場合は、操作は許可されません

デバッグすると
Recordset.Close でエラーになる。
しかし、直前で以下のようにOpenしています。
Recordset.Open strSQL, Connect, adOpenKeyset, adLockOptimistic
理由が分かりませんので、分かる方がいましたらよろしくお願い致します。

Recordset.Closeと Set Recordset = Nothingがなければ
処理は上手く終了します。

Private Sub

  ADOのオブジェクト変数を宣言する
  Dim Connect As New ADODB.Connection
  Dim Recordset As New ADODB.Recordset
  Dim strSQL As String
    
  接続を確立する
  Connect.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
                          "Data Source=C:\temp1\db1.mdb;"
             
  テーブル名を指定してレコードセットを作成する
  strSQL = "INSERT INTO 社員マスタ(社員番号, 氏名)VALUES('009','田上')"

  Recordset.Open strSQL, Connect, adOpenKeyset, adLockOptimistic
    
  Recordset.Close
  Set Recordset = Nothing
  Connect.Close
  Set Connect = Nothing

End Sub


魔界の仮面弁士  2006-10-28 04:48:31  No: 97062

Recordset オブジェクトは、カーソルを持つ結果すなわち SELECT クエリを受け取るためのものです。

INSERT/DELETE/UPDATE/CREATE/ALTER などを使うときは、Execute メソッドを利用してください。


ニャロメ  2006-10-30 18:31:06  No: 97063

魔界の仮面弁士様ありがとうございます。

>INSERT/DELETE/UPDATE/CREATE/ALTER などを使うときは、Execute メソッド
>を利用してください。
勉強になりました。

過去ログを調べたら同じ質問がありましたので以下を参考にしました。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200401/04010064.txt

今後もよろしくお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加