次の方法で共有


OpenForm マクロ アクション

適用先: Access 2013、Office 2013

" OpenForm/フォームを開く " アクションを使用すると、フォーム ビュー、フォーム デザイン ビュー、印刷プレビュー、またはデータシート ビューのいずれかで、フォームを開くことができます。 フォームを開くときのデータ入力モードやウィンドウ モードの設定を行ったり、フォームで表示するレコードを制限したりできます。

設定

OpenForm/フォームを開く アクションの引数は次のとおりです。

アクションの引数

説明

Form Name/フォーム名

開くフォームの名前を指定します。 [マクロ ビルダー] ウィンドウの [アクションの引数] セクションにある [フォーム名] ボックスには、カレント データベース内のフォームがすべて表示されます。 この引数は省略できません。 ライブラリ データベースで "OpenForm/フォームを開く" アクションが定義されているマクロを実行すると、この名前のフォームが、最初にライブラリ データベースで検索され、次にカレント データベースで検索されます。

表示

フォームを開くときのビューを指定します。 [ビュー] ボックスで、[フォーム ビュー]、[デザイン ビュー]、[印刷プレビュー]、[データシート ビュー]、[ピボットテーブル ビュー]、または [ピボットグラフ ビュー] をクリックします。 既定値は [フォーム ビュー] です。

: 引数 View の設定は、フォームの DefaultView プロパティと ViewsAllowed プロパティの設定をオーバーライドします。 たとえば、フォームの "ViewsAllowed/ビュー設定" プロパティが [データシート] に設定されていても、"OpenForm/フォームを開く" アクションを使用すると、フォーム ビューでフォームを開くことができます。

Filter Name/フィルター名

フォームのレコードを制限するか並べ替えるフィルターを指定します。 既存のクエリ名、またはクエリとして保存されているフィルターの名前を入力することができます。 ただし、そのクエリでは、開こうとしているフォーム内のすべてのフィールドを含めるか、クエリの "OutputAllFields/全フィールド表示" プロパティを [はい] に設定する必要があります。

Where Condition/Where 条件式

フォームの基になるテーブルまたはクエリからレコードを選択するために Access が使用する有効な SQL WHERE 句 (WHERE という単語を含まない) または式。 [フィルター名] 引数を使用してフィルターを選択すると、この WHERE 句がフィルターの結果に適用されます。 フォームを開き、そのレコードを別のフォームのコントロールの値で指定されたレコードに制限するには、[fieldname] = Forms![formname]![他のフォームの controlname]fieldname を、開くフォームの基になるテーブルまたはクエリ内のフィールドの名前に置き換えます。 他のフォームのformname と controlname を、もう一方のフォームの名前と、最初のフォームのレコードが一致する値を含む他のフォームのコントロールに置き換えます。

: Where Condition 引数の最大長は 255 文字です。 これより長くて複雑な SQL WHERE 句を入力する必要がある場合は、代わりに Visual Basic for Applications (VBA) モジュールで、DoCmd オブジェクトの OpenForm メソッドを使用します。 VBA では、最大 32,768 バイトの SQL WHERE 句のステートメントを入力できます。

Data Mode/データ モード

フォームを開くときのデータ入力モードを指定します。 これはフォーム ビューまたはデータシート ビューで開いているフォームにのみ適用されます。 新しいレコードの追加を許可して、既存のレコードの編集を禁止する場合は [追加]、既存のレコードの編集および新しいレコードの追加を許可する場合は [編集]、レコードの表示のみを許可する場合は [読み取り専用] をクリックします。 既定値は [ 編集] です。 Notes

  • "Data Mode/データ モード" 引数の設定は、フォームの "AllowEdits/更新の許可"、"AllowDeletions/削除の許可"、"AllowAdditions/追加の許可"、および "DataEntry/データ入力用" プロパティの設定よりも優先されます。 たとえば、フォームの "AllowEdits/更新の許可" プロパティが [いいえ] に設定されていても、"OpenForm/フォームを開く" アクションを使用すると、編集モードでフォームを開くことができます。

  • この引数を指定しないと、フォームは、そのフォームの "AllowEdits/更新の許可"、"AllowDeletions/削除の許可"、"AllowAdditions/追加の許可"、および "DataEntry/データ入力用" プロパティによって設定されたデータ入力モードで開きます。

Window Mode/ウィンドウ モード

フォームを開くときのウィンドウ モードを指定します。 フォームのプロパティで設定されたモードで開く場合は [標準]、フォームを非表示にする場合は [非表示]、画面の下部に小さなタイトル バーにフォームを最小化する場合は [アイコン]、フォームの "Modal/作業ウィンドウ固定" および "PopUp/ポップアップ" プロパティを [はい] に設定する場合は [ダイアログ] をクリックします。 既定値は [標準] です。

: 一部のウィンドウ モード 引数の設定は、タブ付きドキュメントを使用する場合には適用されません。 ウィンドウを重ねて表示するように切り替えるには、次の操作を行います。

  1. [ファイル] タブをクリックし、[ オプション] をクリックします。

  2. [ Access のオプション] ダイアログ ボックスの [ カレント データベース] をクリックします。

  3. [アプリケーション オプション] の [ドキュメント ウィンドウ オプション] で [ウィンドウを重ねて表示する] をクリックします。

  4. [OK] をクリックして、データベースを閉じて再度開きます。

注釈

このアクションの動作は、ナビゲーション ウィンドウでフォームをダブルクリックした場合や、ナビゲーション ウィンドウでフォームを右クリックしてビューを選択した場合と同じです。

フォームはモーダル (ユーザーが他の操作を実行する前に閉じるか非表示にする必要があります)、またはモードレス (フォームが開いている間に他のウィンドウに移動できます) にすることができます。 また、ポップアップ フォーム (他のすべての Access ウィンドウの上に残っている情報を収集または表示するために使用されるフォーム) することもできます。 フォームをデザインするときに、 モーダル プロパティと PopUp プロパティを設定します。 Window Mode 引数に Normal を使用すると、これらのプロパティ設定で指定されたモードでフォームが開きます。 Window Mode 引数に Dialog を使用する場合、これらのプロパティはどちらも [はい] に設定されます。 非表示またはアイコンとして開かれたフォームは、表示または復元するときに、プロパティ設定で指定されたモードに戻ります。

" Window Mode/ウィンドウ モード " 引数を [ ダイアログ] に設定してフォームを開くと、フォームが閉じるか非表示になるまでマクロが中断されます。 フォームを非表示にするには、" SetValue/値の代入 " アクションを使用して、 Visible プロパティを No に設定します。

ヒント

ナビゲーション ウィンドウでフォームを選択し、マクロ アクション行にドラッグできます。 これにより、フォーム ビューでフォームを開く OpenForm アクションが自動的に作成されます。

フィルターおよび WHERE 条件式を指定すると、フォームの " Filter/フィルター " プロパティの設定値として使用されます。

マクロによるコントロールの値の設定

次のマクロは、[仕入先] フォームのボタンから [製品の追加] フォームを開きます。 EchoCloseWindowOpenFormSetValueおよび GoToControl アクションの使用を示します。 SetValue アクションは、[製品] フォームの [仕入先 ID] コントロールを[仕入先] フォームの現在の仕入先に設定します。 その後、 GoToControl アクションによってフォーカスが [カテゴリ ID] フィールドに移動されます。ここで、新しい製品のデータの入力を開始できます。 このマクロは、[仕入先] フォームの [製品の追加] ボタンに添付する必要があります。

アクション

引数: 設定値

コメント

Echo

Echo On/エコーの設定: いいえ

マクロの実行中に画面の更新を停止します。

CloseWindow

オブジェクトの種類: フォームオブジェクト名: 製品リスト保存: いいえ

製品/サービス項目の一覧フォームを閉じます。

OpenForm

フォーム名: 製品ビュー: フォームデータ モード: 追加ウィンドウ モード: 標準

[商品] フォームを開きます。

SetValue

Item/アイテム: [フォーム]![製品]![SupplierID] Expression/式: SupplierID

[仕入先コード] コントロールを [仕入先] フォームの現在の仕入先に設定します。

GoToControl

Control Name/コントロール名: CategoryID

[カテゴリ ID] コントロールに移動します。

次のマクロは、[仕入先] フォームの右下に [製品リスト] フォームを開き、現在の仕入先の商品を表示します。 このマクロは、" Echo/エコー "、" MessageBox/メッセージボックス "、" GoToControl/コントロールの移動 "、" StopMacro/マクロの中止 "、" OpenForm/フォームを開く "、および " MoveAndSizeWindow/ウィンドウの移動とサイズ変更 " の各アクションの使い方を示します。 また、" MessageBox/メッセージボックス "、" "GoToControl/コントロールの移動 "、" StopMacro/マクロの中止 " の各アクションで条件式を使用する方法も示しています。 このマクロを [仕入先] フォームの [商品の参照] ボタンに割り当てる必要があります。

マクロによるフォームの同期

条件

アクション

引数: 設定値

コメント

Echo

Echo On/エコーの設定: いいえ

画面の更新は停止しますが、マクロは実行されています。

IsNull([SupplierID])

MessageBox

Message/メッセージ: 表示する商品を扱う仕入先のレコードに移動し、[商品の参照] ボタンを再度クリックします。 Beep: YesType: NoneTitle: サプライヤーを選択する

[仕入先] フォームに現在の仕入先が存在しない場合、メッセージを表示します。

...

GoToControl

Control Name/コントロール名: 会社名

フォーカスを [仕入先名] コントロールに移動します。

...

StopMacro

マクロを停止します。

OpenForm

フォーム名: 製品リスト ビュー: DatasheetFilter Name: Where Condition: [SupplierID] = [Forms]![Suppliers]![SupplierID] データ モード: 読み取り専用ウィンドウ モード: 標準

[製品リスト] フォームを開き、現在の仕入先の製品を表示します。

MoveAndSizeWindow

Right/右: 0.7799" Down/下: 1.8"

[製品リスト] を [仕入先] フォームの右下に配置します。