適用先: Access 2013、Office 2013
" GoToControl/コントロールの移動 " アクションを使用すると、開いているフォーム、フォームのデータシート、テーブルのデータシート、またはクエリのデータシートのカレント レコードの、指定したフィールドまたはコントロールにフォーカスを移動できます。 このアクションにより、特定のフィールドまたはコントロールにフォーカスを移動することができます。 このフィールドまたはコントロールは、比較を行ったり " FindRecord/レコードの検索 " アクションを実行したりするときに使用します。 また、このアクションを使用して、フォーム内を一定の条件に従って移動することもできます。 たとえば、"健康保険" フォームの [既婚] コントロールに [いいえ] が設定されると、自動的に [配偶者またはパートナーの名前] コントロールをスキップして、次のコントロールにフォーカスを移動することができます。
設定
注:
[!メモ] このアクションは、データ アクセス ページでは使用できません。
"GoToControl/コントロールの移動" アクションの引数は次のとおりです。
アクションの引数 |
説明 |
---|---|
コントロール名 |
フォーカスの移動先のフィールドまたはコントロールの名前を指定します。 [マクロ ビルダー] ウィンドウの [アクションの引数] セクションにある [コントロール名] ボックスにフィールドまたはコントロールの名前を入力します。 これは必須の引数です。 注: 引数 Control Name にフィールドまたはコントロールの名前のみを入力します。Forms などの完全修飾識別子は入力しないでください。製品![製品 ID]。 |
注釈
"GoToControl/コントロールの移動" アクションで、非表示のフォームのコントロールにフォーカスを移動することはできません。
ヒント
GoToControl アクションを使用して、コントロールの一種であるサブフォームに移動できます。 その後、 GoToRecord アクションを使用して、サブフォーム内の特定のレコードに移動できます。 また、GoToControl アクションを使用してサブフォーム上のコントロールに移動し、次にサブフォームのコントロールに移動することもできます。
Visual Basic for Applications (VBA) モジュールで " GoToControl/コントロールの移動 " アクションを実行するには、 DoCmd オブジェクトの GoToControl メソッドを使用します。 SetFocus メソッドを使用して、フォームまたはフォームまたはそのサブフォームのコントロール、開いているテーブル、クエリ、またはフォーム データシートのフィールドにフォーカスを移動することもできます。
例
マクロによるコントロールの値の設定
次のマクロは、[仕入先] フォームのボタンから [製品の追加] フォームを開きます。 Echo、CloseWindow、OpenForm、SetValue、および 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 |
イベントを取り消します。 |