次の方法で共有


GoToControl マクロ アクション

適用先: Access 2013、Office 2013

" GoToControl/コントロールの移動 " アクションを使用すると、開いているフォーム、フォームのデータシート、テーブルのデータシート、またはクエリのデータシートのカレント レコードの、指定したフィールドまたはコントロールにフォーカスを移動できます。 このアクションにより、特定のフィールドまたはコントロールにフォーカスを移動することができます。 このフィールドまたはコントロールは、比較を行ったり " FindRecord/レコードの検索 " アクションを実行したりするときに使用します。 また、このアクションを使用して、フォーム内を一定の条件に従って移動することもできます。 たとえば、"健康保険" フォームの [既婚] コントロールに [いいえ] が設定されると、自動的に [配偶者またはパートナーの名前] コントロールをスキップして、次のコントロールにフォーカスを移動することができます。

設定

注:

[!メモ] このアクションは、データ アクセス ページでは使用できません。

"GoToControl/コントロールの移動" アクションの引数は次のとおりです。

アクションの引数

説明

コントロール名

フォーカスの移動先のフィールドまたはコントロールの名前を指定します。 [マクロ ビルダー] ウィンドウの [アクションの引数] セクションにある [コントロール名] ボックスにフィールドまたはコントロールの名前を入力します。 これは必須の引数です。

: 引数 Control Name にフィールドまたはコントロールの名前のみを入力します。Forms などの完全修飾識別子は入力しないでください。製品![製品 ID]。

注釈

"GoToControl/コントロールの移動" アクションで、非表示のフォームのコントロールにフォーカスを移動することはできません。

ヒント

GoToControl アクションを使用して、コントロールの一種であるサブフォームに移動できます。 その後、 GoToRecord アクションを使用して、サブフォーム内の特定のレコードに移動できます。 また、GoToControl アクションを使用してサブフォーム上のコントロールに移動し、次にサブフォームのコントロールに移動することもできます。

Visual Basic for Applications (VBA) モジュールで " GoToControl/コントロールの移動 " アクションを実行するには、 DoCmd オブジェクトの GoToControl メソッドを使用します。 SetFocus メソッドを使用して、フォームまたはフォームまたはそのサブフォームのコントロール、開いているテーブル、クエリ、またはフォーム データシートのフィールドにフォーカスを移動することもできます。

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

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

アクション

引数: 設定値

コメント

Echo

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

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

CloseWindow

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

[製品リスト] フォームを閉じます。

OpenForm

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

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

SetValue

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

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

GoToControl

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

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

マクロによるデータの入力検査

次の入力検査マクロでは、"仕入先" フォームで入力された郵便番号を確認します。 このマクロでは、" StopMacro/マクロの中止 "、" MessageBox/メッセージボックス "、" CancelEvent/イベントのキャンセル "、および " GoToControl/コントロールの移動 " の各アクションの使い方を示します。 条件式では、フォームのレコードに入力された都道府県と郵便番号を確認します。 都道府県に対して郵便番号が正しく入力されていない場合、マクロはメッセージ ボックスを表示して、レコードの保存を取り消します。 その後、PostalCode コントロールに戻り、エラーを修正することができます。 このマクロは "仕入先" フォームの "BeforeUpdate/更新前処理" プロパティに設定します。

条件

アクション

引数: 設定値

コメント

IsNull([CountryRegion])

StopMacro

[都道府県] の値が Null の場合は、郵便番号を検証できません。

[都道府県] In ("東京都","埼玉県","千葉県") And Len([郵便番号]) <> 7

MessageBox

Message/メッセージ: 郵便番号は 7 文字である必要があります。 Beep: YesType: InformationTitle: Postal Code Error

郵便番号が 7 文字でない場合にメッセージを表示します。

...

CancelEvent

イベントを取り消します。

GoToControl

Control Name/コントロール名: 郵便番号

[都道府県] In ("山梨県","長野県") And Len([郵便番号]) <> 7

MessageBox

"Message/メッセージ": 郵便番号は 7 文字である必要があります。 Beep: YesType: InformationTitle: Postal Code Error

郵便番号が 7 文字でない場合にメッセージを表示します。

...

CancelEvent

イベントを取り消します。

GoToControl

Control Name/コントロール名: 郵便番号

([都道府県] = "広島県") And ([郵便番号] Not Like "7[2-3][0-9][0-9][0-9][0-9][0-9]")

MessageBox

メッセージ: 郵便番号が無効です。 カナダコードの例: H1J 1C3 Beep: YesType: InformationTitle: Postal Code Error

郵便番号がカナダに対して正しくない場合は、メッセージを表示します。 (カナダのコードの例: H1J 1C3)

...

CancelEvent

イベントを取り消します。