0

現在、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 サーバーに書き込みますか?

4

0 に答える 0