'操作用オブジェクトの作成 Dim zzDB_Rec As Object Set zzDB_Rec = CreateObject("ADODB.Recordset") 'レコード操作処理 Set zzDB_Rec = Nothing
データベースの操作にはSQLを使用する方法と、VBAのオブジェクト利用(以下、ADO)を使用する方法の2通りがあります
どちらの操作方法を使用するにしてもレコードを取得する場合はオブジェクトの作成が必要になりますので例コードを使用してください
データベース操作なので、基本的にADOで出来ることはSQLで可能です
なので操作することだけを考慮すればSQLが優位ですが、実際のVBAでのコードの分かりやすさと単体レコードでの処理速度はADOが優位です
なので、どちらが完全に優位というものではありませんので、状況に合わせて使用を切り替えるようにしてください
切り替える基準の分かりやすい点として
- 単体のレコード操作を行う場合はADO
- 複数のレコード操作を行う場合はSQL
と認識して使用を切り分けてください
例えば、ワークシートにあるデータをデータベースに登録する場合に一括で登録することは出来ませんので1レコードずつ登録を行います
この場合にはADOを利用してください
また、データベース上の特定の文字列を置き換えしたい(システム名を正式名称に置き換えなど)の場合には一括で操作を行えるSQLを利用します
結果的にレコードが1つだったとしてもデータベースからのSELECT文はSQLを利用する方が便利です、厳密にはデータベース全てのレコードを操作することになります
例コードはレコードを代入させるためのオブジェクトになります
つまりレコードを取得する必要のない処理であればこのオブジェクトは不要です
例えば、UPDATE文やDELETE文などデータベースのレコードを編集するだけで、そのレコードを返さないような処理の場合です
この場合は、レコードのオブジェクトは不要で、接続用オブジェクトにSQLを実行してもらう形になります