現在、Microsoft SQL Server を使用するバックエンド データベースがあり、Microsoft Access を使用してフロントエンド インターフェイスを構築しています。Access はパススルー クエリを介してバックエンドとやり取りするため、すべての SQL ステートメントはフォームによって収集され、VBA で構築され、サーバーに直接送信されます。これはネットワークの待機時間の問題によるものであり、リンク テーブルを使用する場合、および Access クエリを T-SQL クエリに変換する必要がある場合、Access は非効率的であると理解しています。
データベースからフォームを作成しSELECT
、1 つまたは複数のレコード/フィールドを更新してから、データベースを更新する必要がありUPDATE
ます。次のことが最も効率的ですか?
- 各レコードを独自のクエリで個別に更新します (ユーザーは [保存] ボタンなどをクリックする必要があります)。
- テーブルを Recordset オブジェクトに読み込み、ローカルで変更を加えてから、1 つのクエリをサーバーに送信してバッチ更新します。VBA で変更を加えるか、フォームに Recordset を添付して、Access に Recordset の更新を処理させることができます。
後者の場合、Recordset オブジェクトが更新された場合、レコードセットに VBA コードの QueryDef が設定されている場合、Access は自動的に SQL サーバーに書き込みますか?