Access VBAのDoCmd完全入門|フォーム・レポート操作の基本を解説

Access VBAの学習を始めると、DoCmdというコードをよく見かけます。

初心者だと、

  • DoCmdって何?
  • 何のために使うの?
  • どんな処理ができるの?

と迷いやすい部分です。

結論からいうと、DoCmdは「Accessの操作をVBAから実行するための命令」です。

たとえば、次のような操作をVBAから実行できます。

  • フォームを開く
  • レポートを表示する
  • クエリを実行する
  • レコードを保存する
  • Accessを終了する

Accessの画面で手動操作している内容を、VBAで自動化するイメージです。

目次

DoCmdでできること

DoCmdではさまざまなAccess操作を実行できます。

代表的なものを見てみましょう。

命令内容
DoCmd.OpenFormフォームを開く
DoCmd.OpenReportレポートを表示する
DoCmd.RunSQLSQLを実行する
DoCmd.OpenQueryクエリを実行する
DoCmd.Closeフォームやレポートを閉じる
DoCmd.QuitAccessを終了する

実務ではフォーム操作とクエリ実行で使う機会が特に多いです。

よく使うDoCmd命令一覧

フォームを開く

DoCmd.OpenForm "F_社員一覧"

「F_社員一覧」というフォームを開きます。

コード解説

DoCmd.OpenForm

フォームを開く命令です。

"F_社員一覧"

開きたいフォーム名を指定しています。

フォーム名を間違えるとエラーになるため注意しましょう。

クエリを実行する

DoCmd.OpenQuery "Q_売上更新"

保存済みクエリを実行します。

更新クエリや追加クエリを実行するときによく使います。

SQLを直接実行する

DoCmd.RunSQL "DELETE FROM T_社員 WHERE 退職 = True"

SQL文を直接実行できます。

テーブルのデータ更新処理でよく使われます。

レコードを保存する

DoCmd.RunCommand acCmdSaveRecord

現在編集中のレコードを保存します。

入力フォームの保存ボタンでよく使われます。

フォームを閉じる

DoCmd.Close

現在開いているフォームを閉じます。

終了ボタンなどでよく使われます。

DoCmdの実践サンプル

実際によくある業務画面の例を見てみましょう。

社員一覧フォームから、社員登録フォームを開く例です。

Private Sub btn社員登録_Click()
   DoCmd.OpenForm "F_社員登録"
End Sub

コード全体の目的

ボタンをクリックしたときに、社員登録フォームを開く処理です。

1行ずつ解説

Private Sub btn社員登録_Click()

ボタンがクリックされたときに動くイベントです。

DoCmd.OpenForm "F_社員登録"

「F_社員登録」というフォームを開いています。

End Sub

イベント処理の終了です。

実務での活用ポイント

実務では、メニュー画面から各フォームを開く構成が非常に多いです。

そのため、

  • 顧客一覧を開く
  • 売上一覧を開く
  • 登録フォームを開く

といった場面でDoCmd.OpenFormを頻繁に使います。

DoCmdを使うときの注意点

フォーム名・クエリ名のミスに注意

DoCmdでは、フォーム名やクエリ名を文字列で指定します。

DoCmd.OpenForm "F_社員一覧"

名前が違うと実行エラーになります。

実務ではフォーム名のルールを統一すると管理しやすくなります。

たとえば、次のように接頭辞を付けるケースが多いです。

  • フォーム → F_
  • クエリ → Q_
  • テーブル → T_

RunSQLはデータ更新に注意

RunSQLはデータを直接更新できます。

便利ですが、条件を間違えると大量データを誤更新する危険があります。

DELETE FROM T_社員

のようにWHERE句を書き忘れると、全件削除になるため注意が必要です。

エラー処理も重要

実務では、フォームが存在しない場合やクエリ実行エラーも考慮する必要があります。

そのため、DoCmdを使う処理ではエラー対応を書くことも重要です。

On Error GoTo ErrHandler

DoCmd.OpenForm "F_社員一覧"

Exit Sub

ErrHandler:
   MsgBox "フォームを開けませんでした。"

初心者のうちから、エラー処理を書く習慣を付けると保守しやすくなります。

まとめ

DoCmdは、Accessの操作をVBAから実行するための命令です。

特に実務では、次のような場面で頻繁に使います。

  • フォームを開く
  • クエリを実行する
  • レコードを保存する
  • レポートを表示する
  • DoCmd.OpenForm
  • DoCmd.OpenQuery
  • DoCmd.RunSQL


まずは、上記の構文あたりを使えるようになるとAccess VBAでできることが一気に広がります。

小さなフォーム操作から実際に試して、動きを確認しながら覚えていきましょう。

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次