はてなブックマークに追加
Facebookでシェア
Google+でシェア
Twitterでシェア
VBAでフォームを開く
VBAでフォームを開くにはDoCmd.OpenFormを使います。

DoCmd.OpenFormの使い方
 DoCmd.OpenFormは、指定したフォームを指定したビューで開くメソッドです。単にフォームを開くだけでなく、「レコードの抽出条件を指定して開く(フィルタ機能)」、「簡単なデータを渡す(OpenArgs)」など、オプションの指定方法によってフォームを開くときにいろいろな操作が行えます。

図 1DoCmd.OpenFormの書式
DoCmd.OpenForm FormName, View, FilterName, WhereCondition, DataMode, WindowMode, OpenArgs
フォームを開きます
◆引数
FormName(フォーム名)
 開くフォームの名前を文字列で指定します。指定できるのは、カレントデータベースのフォームのみです。

View(フォームのビュー)省略可能
 フォームを開くときのビューを、表1の内容で指定します。このオプションを省略したときは、acNormalが適用されます。

FilterName(フィルタ名)省略可能
 レコードソースに使用するクエリの名前を文字列で指定します。指定できるのは、カレントデータベースのクエリのみです。

WhereCondition(抽出条件)省略可能
 レコードの抽出条件を記述します。抽出条件の書式は、フォームのフィルタに指定する内容と同じです。

DataMode(データ入力モード)省略可能
 データ入力モードを表2の内容で指定します。ただし、適用されるのはフォームビューかデータシートビューで開かれているフォームに対してのみです。
 このオプションを省略したときは、acFormPropertySettingsが適用されます。

WindowMode(ウィンドウ モード)省略可能
 フォームを開くときのウィンドウの形式を表3の内容で指定します。省略時は 通常のウィンドウ(acWindowNormal)で開きます。

OpenArgs(受け渡しデータ)省略可能
 開いたフォームに渡すデータを指定します。この引数に指定できるデータは、数値や文字列などの簡単なデータです。

◆Tips
・OpenArgs引数に渡したデータは、開いたフォームのOpenArgsプロパティで参照できます。
・WhereConditionに記述する条件式の書き方については、「フォームでレコードの検索や絞り込みを行う」などを参照してください。

【記述例】
フォーム「住所一覧」を開きます。
DoCmd.OpenForm "住所一覧", acNormal

表 1Viewに指定する内容(AcFormView列挙)
名前内容
acDesign1デザイン ビューでフォームを開きます。
acFormDS3データシート ビューでフォームを開きます。
acFormPivotChart5ピボットグラフ ビューでフォームを開きます。
acFormPivotTable4ピボットテーブル ビューでフォームを開きます。
acLayout6レイアウト ビューでフォームを開きます。
acNormal0【既定値】 フォーム ビューでフォームを開きます。
acPreview2印刷プレビューでフォームを開きます。
注)この表の内容は、情報の正確性を期するためAccessヘルプから引用しています。

表 2DataModeに指定する内容(AcFormOpenDataMode列挙)
名前内容
acFormAdd0ユーザーは新しいレコードを追加できますが、既存のレコードを編集できません。
acFormEdit1ユーザーは既存のレコードを編集したり、新しいレコードを追加したりできます。
acFormPropertySettings-1【既定値】 ユーザーはフォームのプロパティのみ変更できます。
acFormReadOnly2ユーザーはレコードの参照のみ可能です。
注)この表の内容は、情報の正確性を期するためAccessヘルプから引用しています。

表 3WindowModeに指定する内容(AcWindowMode列挙)
名前内容
acDialog3フォームやレポートの "Modal/作業ウィンドウ固定" プロパティと "PopUp/ポップアップ" プロパティが [Yes/はい] に設定されます。
acHidden1フォームやレポートが非表示になります。
acIcon2フォームやレポートが最小化され、Windows タスク バーに収まります。
acWindowNormal0【既定値】 フォームやレポートは、そのプロパティで設定されたモードで開きます。
注)この表の内容は、情報の正確性を期するためAccessヘルプから引用しています。
DoCmd.OpenFormの使用例
 次のリストは、DoCmd.OpenForm で指定したフォームを開くプログラムの作成例です。プロシージャ「btnSubmit_Click」は、フォームに配置した「データ一覧起動」ボタンのイベントプロシージャ「クリック時」です。

 このサンプルは、メニューフォーム用のフォームから個々の機能を呼び出す仕組みの簡単な例です。ボタンをクリックしたときのイベントプロシージャでDoCmd.OpenFormを実行し(6行目)、データ一覧を表示するフォーム「データ一覧」を開きます。

リスト 1DoCmd.OpenFormでフォームを開くプログラム
1
2
3
4
5
6
7
8

フォーム1
Option Compare Database
Option Explicit

Private Sub btnSubmit_Click()

    DoCmd.OpenForm "データ一覧", acNormal

End Sub

◆実行例
 フォーム1をフォームビューで開き「データ一覧起動」ボタンをクリックすると、フォーム「データ一覧」が開きます。フォーム「データ一覧」は、テーブルのデータを帳票形式で表示する連結フォームです。

図 2サンプルプログラムの実行結果
サンプルプログラムの実行結果


Copyright(C) 1999-2015 結城圭介(Ver.3.51) All rights reserved