レコードセットでこのようなクエリは機能しますか
rs.open "select * from table where vd = 1; update table set vd1 = 1 where vd = 2 or vd = 3;"
または何か問題がありますか
ありがとう
それは機能しません-あなたはそれらを別々のコマンドとして実行する必要があります
おそらく、レコードセットとして宣言しているので、それを使用してステートメントの結果rs
を返すことができます。SELECT
SQLコマンドを使用して2番目のステートメントを実行します。
レコードセットは、単一の SELECT ステートメントでのみ定義できます (ただし、同じ数の列がある場合は、もちろん、複数の選択を UNION できます)。
アクション SQL (INSERT、UPDATE、DELETE) は、レコードセットでは実行できませんが、.Execute メソッドを使用して実行できます。
ADO を使用している場合、.Execute は SELECT (行を返す) にも使用できますが、Jet のネイティブ データ インターフェイス レイヤーである DAO は使用できません。.Execute はアクション クエリに対してのみ機能します。これは理にかなっているように思えますが、個人的には、ADO は常に時間の無駄のように思えてきました。
また、Jet (Access でデフォルトで使用される db エンジン) は、多くのサーバーベースの db エンジンとは異なり、一度に複数の SQL ステートメントを実行できません。これは、SQL ステートメントのバッチ処理に慣れている人にとってはそれほど大きな制限ではありません。違いがあるだけです。