AccessVBA 基礎文法最速マスター

AccessVBA 基礎最速マスター」を別Wikiサイトにて鋭意作成中。

DoCmdオブジェクトの使い方

DoCmdオブジェクトを用いると、VBAでAccessの機能を実行するコードを書くことができます。

たとえば、DoCmdオブジェクトのOpenFormメソッドは”フォームを開く”機能を持ちますし、Hourglassメソッドはマウスポインタを砂時計に変更したりできます。
そういったことがプログラミングできるのです。

さて、ほとんどのDoCmdオブジェクトは”引数”を指定します。

引数というのは耳慣れない言葉かも知れませんが、エクセルのワークシート関数で用いられるのと同じ意味です。エクセルではセルの中で「=SUM(A1:A10)」とすると、セルA1からA10までのセルの値を合計しました。このときの”A1:A10”が引数です。SUMという<動詞>に与えられた<目的語>のようなものです。

引数には必須なものとオプションのものがあります。

オプションの引数を省略すれば、そのメソッドのデフォルト値が適用されます。

たとえば、OpenFormメソッドは7つの引数を持ちますが、一番目の引数であるFormNameをのぞいてすべてオプションです。

さて、実際にコードの例を見てみましょう。

以下のようにすると、住所フィールドが”東京都”のレコードだけを抜き出して、フォーム「F_顧客リスト」を表示します。

DoCmd.OpenForm "F_顧客リスト", , , "[住所] = '東京都'"

また、以下のようにすると、「F_顧客リスト」を新しいレコードを追加できる状態で表示します。


Sub AddNewRecord()
DoCmd.OpenForm "F_顧客リスト", acNormal
DoCmd.GoToRecord , , acNewRec
End Sub

このコードをボタンなどのイベントとして紐づけると、そのボタンをクリックすればDoCmdオブジェクトの便利な機能をしようできるわけです。