VBAでフォームを開く
VBAでフォームを開くにはDoCmd.OpenFormを使います。
サンプルダウンロード
DoCmd.OpenFormの使い方
DoCmd.OpenFormは、指定したフォームを指定したビューで開くメソッドです。単にフォームを開くだけでなく、「レコードの抽出条件を指定して開く(フィルタ機能)」、「簡単なデータを渡す(OpenArgs)」など、オプションの指定方法によってフォームを開くときにいろいろな操作が行えます。
図 1
DoCmd.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
表 1
Viewに指定する内容(AcFormView列挙)
名前
値
内容
acDesign
1
デザイン ビューでフォームを開きます。
acFormDS
3
データシート ビューでフォームを開きます。
acFormPivotChart
5
ピボットグラフ ビューでフォームを開きます。
acFormPivotTable
4
ピボットテーブル ビューでフォームを開きます。
acLayout
6
レイアウト ビューでフォームを開きます。
acNormal
0
【既定値】
フォーム ビューでフォームを開きます。
acPreview
2
印刷プレビューでフォームを開きます。
注)この表の内容は、情報の正確性を期するためAccessヘルプから引用しています。
表 2
DataModeに指定する内容(AcFormOpenDataMode列挙)
名前
値
内容
acFormAdd
0
ユーザーは新しいレコードを追加できますが、既存のレコードを編集できません。
acFormEdit
1
ユーザーは既存のレコードを編集したり、新しいレコードを追加したりできます。
acFormPropertySettings
-1
【既定値】
ユーザーはフォームのプロパティのみ変更できます。
acFormReadOnly
2
ユーザーはレコードの参照のみ可能です。
注)この表の内容は、情報の正確性を期するためAccessヘルプから引用しています。
表 3
WindowModeに指定する内容(AcWindowMode列挙)
名前
値
内容
acDialog
3
フォームやレポートの "Modal/作業ウィンドウ固定" プロパティと "PopUp/ポップアップ" プロパティが [Yes/はい] に設定されます。
acHidden
1
フォームやレポートが非表示になります。
acIcon
2
フォームやレポートが最小化され、Windows タスク バーに収まります。
acWindowNormal
0
【既定値】
フォームやレポートは、そのプロパティで設定されたモードで開きます。
注)この表の内容は、情報の正確性を期するためAccessヘルプから引用しています。
DoCmd.OpenFormの使用例
次のリストは、DoCmd.OpenForm で指定したフォームを開くプログラムの作成例です。プロシージャ「btnSubmit_Click」は、フォームに配置した「データ一覧起動」ボタンのイベントプロシージャ「クリック時」です。
このサンプルは、メニューフォーム用のフォームから個々の機能を呼び出す仕組みの簡単な例です。ボタンをクリックしたときのイベントプロシージャでDoCmd.OpenFormを実行し(6行目)、データ一覧を表示するフォーム「データ一覧」を開きます。
リスト 1
DoCmd.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
サンプルプログラムの実行結果
Access VBA Tips+α
DoCmd(マクロ)編
●DoCmdとメソッド
DoCmd.OpenForm(フォームを開く)
DoCmd.OpenQuery(クエリを開く)
DoCmd.OpenReport(レポートを開く)
DoCmd.Close(閉じる)
DoCmd.PrintOut(印刷する)
DoCmd.SetWarnings(メッセージの設定)
DoCmd.Maximize(ウィンドウを最大化する)
DoCmd.Minimize(ウィンドウを最小化する)
DoCmd.Restore(ウィンドウを元の大きさに戻す)
DoCmd.SelectObject(最前面に表示する)
DoCmd.HourGlass(マウスポインターを待ち状態にする)
DoCmd.GoToRecord(任意のレコードに移動する)
DoCmd.Save(オブジェクトを保存する)
DoCmd.NavigateTo(移動先)
DoCmd.ShowToolbar(ツールバーの表示)
●DoCmd.RunCommandによるAccessの操作
RunCommandメソッドとAccessの組み込みコマンド
acCmdCloseAll(すべて閉じる)
acCmdSaveRecord(レコードの保存)
acCmdRemoveAllFilters(フィルタをすべて解除)
acCmdRemoveAllSorts(並べ替えをすべて解除)
acCmdPrint(印刷ダイアログボックスを表示)
acCmdZoom75など(プレビューの表示倍率)
acCmdManageAttachments(添付ファイルの管理)
acCmdAppMaximize(Accessウィンドウの最大化)
acCmdAppMinimize(Accessウィンドウの最小化)
acCmdAppRestore(Accessウィンドウを元に戻す)
●逆引きリンク
[L]リボンを表示する/表示しないを切り替える
■DAOデータアクセス編
■ADOデータアクセス編
■クエリー(SQL)編
■フォーム・サブフォーム編
■レポート編
■Printerオブジェクト編
■コントロール基本編
■テキスト/コンボ/リストボックス活用編
■メニューバー・ツールバー編
■マクロ(DoCmd)編
■複数値と添付ファイル編
■Accessの操作と便利な機能編
■プログラミングサンプル編
■番外編1.HTTPやFTPを使うには
■サイト内を検索
Happy! Happy! Islandその他のコンテンツ
■
VBAプログラミング系
Access VBAのTipsとサンプル
Excel VBA(エクセルマクロ)のTipsとサンプル
VBScript/JScriptのTipsとサンプル
プログラミング基礎・入門
■
入門と使い方
Access入門と使い方講座97~2003/2007/2010/2013
Access VBAプログラミング入門 2013/2010/2007/2003
Excel入門と使い方講座2013/2010/2007
■
ダウンロードコーナー
AccessとExcelのフリーソフト
■
その他
質問受け付けコーナー「管理人に聞いてみよう♪」
BBS過去ログ広場
HTMLの書き方
管理人プロフィール
┗
twitter(外部サイト)
管理人へメール
■
別館(海外向けサイト)
Excel Games and Access Games
VBAプログラミング&Tips集の
"Happy! Happy! Island"トップページへ
[PR]管理人が心を込めて書いた本
■
最速攻略 AccessVBAサンプル大全集
Access 2013/2010/2007対応版
■
速効!ビジネスPC Accessマクロ&VBA
Access2013/2010/2007対応
■
最速攻略Accessクエリ テクニック大全集
Access2013/2010/2007対応
■
AccessVBAマクロ超入門講座 Access2010/2007対応
■
ExcelVBA超入門講座 Excel2010/2007対応
■
ExcelVBAでできる RPGゲーム作成入門
■
[改訂新版]実践COBOLプログラミング入門
■
最速攻略 VBScriptサンプル大全集
Windows7/Vista/XP/2000対応
(
アマゾン
へジャンプします)
[PR]注目の情報
転職成功の秘訣はサイトに公開されない求人にあった
採用人数が少ない・専門性が高い・競合他社に知られたくないなど、魅力的な求人情報ほど一般には公開できないのです。
株デビューするなら SBI証券!
業界屈指の格安手数料と業界最高水準のサービスで口座数はネット証券 No.1!口座開設料・管理料は無料。
GDOゴルフショップ
ゴルフ用品のオンラインメガストア。品揃え10万点!
アスタリフトコラーゲンドリンク
毎日続けるものだから・・まとめ買いで最大10%OFF!集中コラーゲンケアで、ハリと潤いの溢れる毎日へ。
[リンク]IT関連情報サイトなど
gihyo.jp
技術評論社提供のIT関連コンテンツサイト
Copyright(C) 1999-2015
結城圭介
(Ver.3.51) All rights reserved