PR

Access VBA逆引き集|DAOでできること総まとめ!業務システム開発で必ず使う実践テクニックとCopilot活用術

VBA

Access VBAを学び始めると、

  • DAOって何?
  • Recordsetはいつ使うの?
  • DLookupとの違いは?
  • DAOで何ができるの?

という疑問を持つ方が多いです。

DAO(Data Access Objects)はAccess VBAでデータベースを自由自在に操作するための最重要技術です。

実際の業務システムでは、

顧客管理、売上管理、設備管理、在庫管理、CSV取込、バッチ処理

といった様々なデータベースにおいて、ほぼ全てでDAOを活用できます。

今回は「DAOで何ができるのか」を実務目線で整理して紹介します。


スポンサーリンク

DAOとは

DAOは

Data Access Objects

の略です。

Accessデータベースへアクセスするためのオブジェクト群です。


主なオブジェクト

Database

Recordset

QueryDef

TableDef

Field


実務では特に

Database

Recordset

を頻繁に利用します。


DAOでできること一覧

DAOで実現できる代表的な機能です。

機能利用頻度
テーブル検索★★★★★
SQL実行★★★★★
データ追加★★★★★
データ更新★★★★★
データ削除★★★★★
レコード件数取得★★★★★
CSV取込後チェック★★★★☆
トランザクション処理★★★★☆
クエリ実行★★★★☆
テーブル定義取得★★★☆☆

できること① データ検索

最も利用頻度が高い処理です。

Dim rs As DAO.Recordset

Set rs = CurrentDb.OpenRecordset("SELECT * " & "FROM T_CUSTOMER")

レコード取得

Do Until rs.EOF

  Debug.Print rs!顧客名

  rs.MoveNext

Loop

活用例

顧客検索

売上検索

設備検索

履歴検索


できること② データ追加

レコード登録です。

rs.AddNew

rs!顧客コード = "C001"

rs!顧客名 = "東京商事"

rs.Update

活用例

顧客登録

売上登録

履歴登録

ログ登録


できること③ データ更新

既存データ編集です。

rs.Edit

rs!顧客名 = "大阪商事"

rs.Update

活用例

顧客情報変更

設備状態変更

在庫更新


できること④ データ削除

不要レコード削除です。

rs.Delete

活用例

誤登録削除

履歴削除

一時データ削除


できること⑤ SQL実行

実務では最も利用します。

CurrentDb.Execute "UPDATE T_CUSTOMER " & "SET 顧客区分='A'"

活用例

一括更新

一括削除

バッチ処理


できること⑥ レコード件数取得

件数確認です。

rs.MoveLast

Debug.Print rs.RecordCount

活用例

検索件数表示

取込件数確認

登録件数確認


できること⑦ トランザクション処理

重要処理向けです。

DBEngine.BeginTrans

CurrentDb.Execute strSQL1

CurrentDb.Execute strSQL2

DBEngine.CommitTrans

失敗時

DBEngine.Rollback

活用例

受注登録

在庫更新

売上確定


できること⑧ CSV取込チェック

データ存在確認です。

strSQL = "SELECT * " & "FROM T_CUSTOMER " & "WHERE 顧客コード='C001'"

活用例

重複チェック

マスタチェック

取込エラー確認


できること⑨ DLookupより高速な検索

初心者はDLookupを使います。

DLookup(…)


DAOの場合

OpenRecordset

を利用します。


メリット

高速

複数件対応

柔軟


できること⑩ クエリ実行

保存クエリを実行できます。

CurrentDb.QueryDefs("Q_CUSTOMER").Execute

活用例

月次処理

集計処理

CSV取込


できること⑪ テーブル一覧取得

テーブル管理です。

Dim tdf As DAO.TableDef

For Each tdf In CurrentDb.TableDefs

  Debug.Print tdf.Name

Next

活用例

管理ツール

保守ツール


できること⑫ フィールド情報取得

項目確認です。

Dim fld As DAO.Field

For Each fld In rs.Fields

  Debug.Print fld.Name

Next

活用例

CSV自動マッピング

テーブル解析


実務で最もよく使うDAO機能

開発現場の利用頻度です。

順位機能
1位OpenRecordset
2位Execute
3位RecordCount
4位AddNew
5位Edit
6位Delete
7位BeginTrans
8位QueryDefs
9位TableDefs
10位Fields

実際には

OpenRecordset

Execute

だけで全体の8割以上を占めます。


DAOが活躍するシステム

特に相性が良いシステムです。

顧客管理システム

検索

登録

更新


売上管理システム

集計

更新

履歴管理


設備管理システム

点検履歴

設備台帳

状態管理


CSV取込システム

取込

重複確認

登録


夜間バッチ処理

一括更新

一括削除

履歴作成


Copilot活用術

DAOはCopilotとの相性が非常に良いです。

DAOコード生成

Access VBAです。

DAOを利用して

顧客テーブルを検索する

コードを作成してください。


SQLレビュー

以下のDAOコードを

レビューしてください。


トランザクション作成

DAOでトランザクション処理を

作成してください。


まとめ

DAOはAccess VBA開発の中心となる技術です。

DAOを利用すると、

  • データ検索
  • データ追加
  • データ更新
  • データ削除
  • SQL実行
  • トランザクション処理
  • CSV取込チェック
  • バッチ処理

など、業務システムに必要なほぼ全てのデータベース操作を実現できます。

Access VBAを本格的に習得したいのであれば、

まずは

CurrentDb.OpenRecordset

CurrentDb.Execute

の2つから覚えるのがおすすめです。

この2つを使いこなせるだけで、実務システム開発の大部分に対応できるようになります。

Access 実践マスターガイド~仕事の現場で即使える | 今村 ゆうこ |本 | 通販 | Amazon
Amazonで今村 ゆうこのAccess 実践マスターガイド~仕事の現場で即使える。アマゾンならポイント還元本が多数。今村 ゆうこ作品ほか、お急ぎ便対象商品は当日お届けも可能。またAccess 実践マスターガイド~仕事の現場で即使えるもアマ…

コメント

タイトルとURLをコピーしました