近年、生成AIの活用によってAccess開発の進め方が大きく変わりつつあります。結論から言うと、Copilotなどの生成AIでSQLを作成し、そのままAccess VBAへ組み込むことで開発効率を大幅に向上できます。
以前はSQLを書ける担当者しかデータ抽出や更新処理を作れませんでした。しかし現在は生成AIへ要件を伝えるだけでSQLのたたき台を作成できる時代になっています。
今回は、生成AIを利用して作成したSQLをAccess VBAへ自動反映し、業務改善へつなげる実践テクニックを紹介します。
なぜ生成AIとAccessが相性抜群なのか
生成AIが得意なのは、
- SQL作成
- VBA作成
- コードレビュー
- エラー分析
- ドキュメント作成
です。
一方Access開発では、
- データ抽出
- データ更新
- 集計処理
- CSV取込
- Excel出力
といったSQL中心の処理が数多くあります。
つまり、
業務担当者
↓
Copilotへ要件入力
↓
SQL生成
↓
Access VBAへ反映
↓
業務システム完成
という流れを構築できます。
生成AIでSQLを作成する
まずCopilotへ依頼します。
例1 顧客一覧取得
依頼例
Access SQLです。
東京都の顧客のみ抽出してください。
テーブル名:T_CUSTOMER
抽出項目:
顧客ID
顧客名
住所
生成例
SELECT
顧客ID,
顧客名,
住所
FROM
T_CUSTOMER
WHERE
住所 Like ‘東京都‘;
これだけで基本SQLが完成します。
Access VBAへ自動反映する
生成されたSQLを変数へ格納します。
Dim strSQL As String
strSQL = _
"SELECT 顧客ID,顧客名,住所 " & _
"FROM T_CUSTOMER " & _
"WHERE 住所 Like '東京都'"
フォームへ反映します。
Me.RecordSource = strSQL
Me.Requery
利用者はすぐに検索結果を確認できます。
実践例① 動的検索SQL
生成AIが特に得意なのが動的SQLです。
例えば以下の依頼。
顧客名を部分一致検索したい
Access VBAで使えるSQLを作ってください
“
生成例
SELECT
FROM T_CUSTOMER
WHERE 顧客名 Like '' &
[検索条件] &
'*';
VBAでは次のようになります。
strSQL = _
"SELECT * " & _
"FROM T_CUSTOMER " & _
"WHERE 顧客名 Like '" & _
Me.txtSearch & "'"
検索フォーム作成時間を大幅に短縮できます。
実践例② UPDATE文生成
データ補正でも活躍します。
Copilotへ依頼。
売上金額を10%増額するUPDATE文を作成してください
生成結果
UPDATE T_SALES
SET 売上金額 = 売上金額 * 1.1;
Access VBAから実行します。
CurrentDb.Execute strSQL
大量データの更新も容易になります。
実践例③ 削除SQL生成
Accessでは削除処理も頻繁に利用します。
依頼例
3年以上前のログデータを削除したい
生成結果
DELETE *
FROM T_LOG
WHERE 登録日 <
DateAdd("yyyy",-3,Date());
VBA実行例
CurrentDb.Execute strSQL
定期メンテナンスにも活用できます。
実践例④ 集計SQL生成
月次集計にも便利です。
依頼例
都道府県別顧客件数を集計したい
生成結果
SELECT
都道府県,
Count(*) AS 件数
FROM
T_CUSTOMER
GROUP BY
都道府県;
複雑な集計SQLも数秒で作成できます。
SQLをテーブル管理する方法
実務では管理テーブルを作ると便利です。
T_SQL_SETTING
| 項目名 | 内容 |
|---|---|
| SQL_ID | 識別子 |
| SQL_NAME | 名称 |
| SQL_TEXT | SQL本文 |
VBAでは
strSQL = DLookup( _
"SQL_TEXT", _
"T_SQL_SETTING", _
"SQL_ID=1")
で取得できます。
管理者がSQLを書き換えるだけで動作変更できます。
CopilotでSQLレビューを行う
SQLを作るだけではなくレビューも可能です。
依頼例
以下のAccess SQLをレビューしてください
処理速度
インデックス
保守性
の観点でお願いします
すると、
- 不要条件
- 重複処理
- 非効率な抽出
などの改善案を得られます。
SQL生成の注意点
生成AIが出力したSQLは必ず確認しましょう。
確認ポイント
テーブル名
T_CUSTOMER
実際の名称か確認
フィールド名
顧客名
存在するか確認
Access専用構文
Access特有の構文があります。
例
Date()
DateAdd()
他DB向けSQLになっていないか確認が必要です。
Copilot活用術① SQLテンプレート作成
次のような依頼が有効です。
Access VBA開発です
顧客管理システムで利用する
SELECT
UPDATE
DELETE
テンプレートを作成してください
共通的なコードを短時間で準備できます。
Copilot活用術② エラー解析
エラーが発生した場合は、
このSQLでエラーになります
原因を教えてください
“
と依頼します。
初心者でも原因特定が容易になります。
Copilot活用術③ VBAコード生成
SQLだけではありません。
以下の依頼も有効です。
Access VBAです
SQLをRecordSourceへ設定し
再表示するコードを作成してください
SQLからVBAまでまとめて作成できます。
AI時代のAccess開発で重要な考え方
最近は、
- SQL作成
- VBA生成
- エラー分析
を生成AIが支援してくれます。
しかし重要なのは、
「どのデータを抽出したいか」
「どの業務を改善したいか」
という業務要件です。
生成AIは非常に優秀ですが、
- テーブル構成
- 業務ルール
- 社内運用
までは自動で理解できません。
そのため、
業務知識
+
Access知識
+
生成AI活用
の組み合わせが最大の効果を発揮します。
AccessとCopilotの組み合わせが強力な理由
従来
要件整理
↓
SQL作成
↓
VBA作成
↓
テスト
“
でした。
現在は
要件整理
↓
Copilotへ依頼
↓
SQL生成
↓
VBA生成
↓
レビュー
となります。
開発スピードが大きく向上します。
まとめ
生成AIはAccess開発の強力なパートナーです。
特に以下の作業で大きな効果があります。
- SELECT文作成
- UPDATE文作成
- DELETE文作成
- 集計SQL作成
- SQLレビュー
- VBAコード生成
- エラー解析
さらにSQLをテーブル管理し、Access VBAから自動反映する仕組みを構築すれば、保守性も向上します。
これからのAccess開発では、「SQLを書く人」だけでなく、「生成AIを上手に活用できる人」が大きな武器を持つことになるでしょう。Copilotを活用しながら、より効率的なAccessシステム構築に挑戦してみてください。

コメント