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オブジェクトの便利な機能をしようできるわけです。