Access デスクトップ データベースと Access Web アプリケーションでGoToControl/コントロールの移動マクロ アクションを使用すると、開いているフォーム、フォーム データシート、テーブル データシート、またはクエリ データシートの現在のレコードで、指定のフィールドまたはコントロールにフォーカスを移動できます。 特定のフィールドまたはコントロールにフォーカスを設定したいときに、このアクションを使用できます。 このフィールドやコントロールは、比較やFindRecord/レコードの検索クションに使用できます。 また、このアクションを使用すると、特定の条件に従ってフォーム内を移動することができます。 たとえば、ユーザーが医療保険フォームの [既婚] コントロールに [いいえ] を入力した場合に、フォーカスを自動的に [配偶者名] コントロールをスキップして次のコントロールに移動させることができます。
設定
GoToControl/コントロールの移動アクションの引数は次のとおりです。
アクションの引数 |
説明 |
コントロール名 |
フォーカスするフィールドまたはコントロールの名前を入力します。 これは必須の引数です。 注: Access デスクトップ データベースを使用している場合、[Control Name/コントロール名] 引数には、[Forms]![Products]![Product ID] のような完全修飾識別子ではなく、フィールド名またはコントロール名だけを入力します。 |
解説
GoToControl/コントロールの移動マクロ アクションを使用して、非表示のフォーム上のコントロールにフォーカスを移動することはできません。
ヒント: GoToControl/コントロールの移動マクロ アクションを使用して、コントロールの一種である サブフォーム に移動することはできます。 そして、GoToRecord アクションを使用して、サブフォーム内の特定のレコードに移動できます。 GoToControl/コントロールの移動アクションを使用してサブフォーム上のコントロールに移動して、最初にサブフォームに移動してから、サブフォーム上のコントロールに移動することもできます。
Visual Basic for Applications (VBA) モジュールでGoToControl/コントロールの移動マクロ アクションを実行するには、DoCmd オブジェクトの GoToControl メソッドを使用します。 SetFocus メソッドを使用して、フォーカスをフォーム上またはそのサブフォーム上のコントロール、または開いているテーブル、クエリ、またはフォーム データシート内のフィールドに移動することもできます。
例
マクロを使用してコントロールの値を設定する
次のマクロでは、[仕入先] フォームのボタンから [商品の追加] フォームを開きます。 Echo/エコー、Close/閉じる、OpenForm/フォームを開く、SetValue/値の代入、および GoToControl/コントロールの移動 の各アクションの使い方を説明します。 SetValue/値の代入 アクションでは、[商品] フォームの [仕入先コード] コントロールに、[仕入先] フォームの現在の仕入先を設定します。 GoToControl/コントロールの移動 アクションで、[仕入先コード] フィールドにフォーカスを移動し、そこで新しい製品のデータを入力できます。 このマクロは、[仕入先] フォームの [商品の追加] ボタンに設定します。
アクション |
引数: 設定 |
コメント |
Echo |
エコーの設定:いいえ |
マクロの実行中に画面の更新を停止します。 |
Close/閉じる |
オブジェクトの種類: "フォーム" Object Name/オブジェクト名: 製品/サービス項目の一覧 Save/保存:いいえ |
製品/サービス項目の一覧フォームを閉じます。 |
OpenForm/フォームを開く |
"Form Name/フォーム名":商品 ビュー: "フォーム" "Data Mode/データ モード":"Add/追加" ウィンドウモード: "標準" |
[商品] フォームを開きます。 |
"SetValue/値の代入" |
"Item/アイテム": [Forms]![商品]![仕入先コード] "式":仕入先コード |
[仕入先コード] コントロールに [仕入先] フォームの現在の仕入先を設定します。 |
GoToControl/コントロールの移動 |
"Control Name/コントロール名":商品コード |
[商品コード] コントロールに移動します。 |
マクロを使ってデータを検証する
次の検証マクロでは、サプライヤー フォームに入力された郵便番号を確認します。 このマクロで、StopMacro、MessageBox、CancelEvent、GoToControl の各アクションの使い方を示します。 条件式により、フォームのレコードに入力された国や地域および郵便番号を確認します。 郵便番号が、その国や地域の正しい形式になっていない場合は、メッセージ ボックスを表示して、レコードの保存をキャンセルします。 その後、郵便番号コントロールに戻って、誤りを訂正できるようにします。 このマクロは、サプライヤー フォームの BeforeUpdate プロパティに設定します。
条件 |
操作 |
引数: 設定 |
コメント |
IsNull([CountryRegion]) の場合 |
StopMacro |
CountryRegion が Null である場合は、郵便番号を検証できません。 |
|
[CountryRegion] In ("France","Italy","Spain") And Len([Postal Code]) <> 5 の場合 |
MessageBox/メッセージ ボックス |
メッセージ: 郵便番号は 5 文字でなければなりません。 警告音: "はい" メッセージの種類: 情報 タイトル: 郵便番号エラー |
郵便番号が 5 文字でない場合は、メッセージが表示されます。 |
CancelEvent |
イベントがキャンセルされます。 |
||
GoToControl/コントロールの移動 |
Control Name: PostalCode |
||
[CountryRegion] In ("Australia","Singapore") And Len([Postal Code]) <> 4 の場合 |
MessageBox/メッセージ ボックス |
メッセージ: 郵便番号は 4 文字でなければなりません。 警告音: "はい" メッセージの種類: 情報 タイトル: 郵便番号エラー |
郵便番号が 4 文字でない場合は、メッセージが表示されます。 |
CancelEvent |
イベントがキャンセルされます。 |
||
GoToControl/コントロールの移動 |
Control Name: PostalCode |
||
([CountryRegion] = "Canada") And ([Postal Code] Not Like"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]") の場合 |
MessageBox/メッセージ ボックス |
メッセージ: 郵便番号が無効です。 カナダの郵便番号の例: H1J 1C3 警告音: "はい" メッセージの種類: 情報 タイトル: 郵便番号エラー |
カナダの郵便番号が正しくない場合は、メッセージが表示されます。 (カナダの郵便番号の例: H1J 1C3) |
CancelEvent |
イベントがキャンセルされます。 |