PR

Access VBA逆引き集|生成AIで作成したSQLをAccessへ自動反映する実践テクニックとCopilot活用術

Access学習

近年、生成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_TEXTSQL本文

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システム構築に挑戦してみてください。

コメント

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