"SetValue/値の代入" マクロ アクションを使って、フォーム、フォーム データシート、または レポート上にある Access のフィールド、コントロール、またはプロパティの値を設定できます。
注: "SetValue/値の代入" マクロ アクションを使って、オブジェクトを返す Access プロパティの値を設定することはできません。
注: このアクションは、データベースが信頼されていない場合は許可されません。
設定
"SetValue/値の代入" マクロ アクションには次の引数があります。
アクションの引数 |
説明 |
アイテム |
値を設定するフィールド、コントロール、またはプロパティの名前。 マクロ デザイン ウィンドウの [アクションの引数] セクションの [アイテム] ボックスに、フィールド、コントロール、またはプロパティの名前を入力します。 controlname (マクロを呼び出したフォームまたはレポート上のコントロールの場合) や Forms!formname!controlname など、完全な構文を使ってこのアイテムを参照する必要があります。 これは必須の引数です。 |
式 |
Access がこのアイテムの値を設定するために使う式。 式の中のオブジェクトを参照するには、常に完全な構文を使う必要があります。 たとえば、Employees フォームの Salary コントロールの値を 10% 増やすには、Forms!Employees!Salary*1.1 を使います。 これは必須の引数です。 注: この引数の式の前に等号 (=) を付けてはなりません。 等号を付けると、Access は式を評価し、その値をこの引数の式として使います。 その式が文字列の場合、予期しない結果になる可能性があります。 たとえば、この引数に「="String1"」と入力すると、Access は最初にこの式を "String1" と評価します。 その後、"String1" をこの引数の式として使うので、マクロを呼び出したフォームまたはレポート上の String1 という名前のコントロールまたはプロパティを検索することが予想されます。 |
注: Access データベース (.mdb または .accdb) では、これらの引数の式を作成するには、[ビルド] ボタンをクリックして式ビルダーを使います。
解説
このアクションを使って、フォーム、フォーム データシート、レポート上のフィールドまたはコントロールの値を設定できます。 また、ビューのほぼすべてのコントロール、フォーム、レポートのプロパティの値を設定することもできます。 マクロを使って特定のプロパティを設定できるかどうか、および設定できるビューについては、Visual Basic エディターでそのプロパティのヘルプ トピックを参照してください。
また、フィールドにバインドされたコントロールがフォームに含まれない場合でも、フォームの基になっているテーブルのフィールドの値を設定できます。 そのようなフィールドの値を設定するには、[アイテム] ボックスで Forms!formname!fieldname という構文を使います。 また、Reports!reportname!fieldname という構文を使うことでレポートの基になっているテーブルのフィールドを参照することもできますが、このフィールドにバインドされたコントロールがレポート上に存在するか、またはレポートの演算コントロールでフィールドが参照されている必要があります。
フォームのコントロールの値を設定する場合、"SetValue/値の代入" マクロ アクションは、コントロールのフォーム レベルの入力規則はトリガーしませんが、コントロールがバインドされたコントロールの場合は、基になっているフィールドのテーブル レベルの入力規則をトリガーします。 また、"SetValue/値の代入" マクロ アクションは再計算もトリガーしますが、再計算は直ちに実行されない場合があります。 すぐに再描画をトリガーして強制的に再計算を完了するには、"RepaintObject/オブジェクトの再描画" マクロ アクションを使います。 "SetValue/値の代入" マクロ アクションを使ってコントロールに設定される値は、コントロールまたは基になっているフィールドの InputMask プロパティで設定される定型入力による影響も受けません。
コントロールの値を変更するには、コントロールの AfterUpdate イベント プロパティによって指定されているマクロで "SetValue/値の代入" アクションを使います。 ただし、コントロールの BeforeUpdate イベント プロパティで指定されているマクロで "SetValue/値の代入" アクションを使って、コントロールの値を変更することはできません (ただし、"SetValue/値の代入" アクションを使って、他のコントロールの値を変更することはできます)。 また、フォームの BeforeUpdate または AfterUpdate プロパティによって指定されたマクロで "SetValue/値の代入" アクションを使って、現在のレコードのコントロールの値を変更することもできます。
注: "SetValue/値の代入" マクロ アクションを使って、次のコントロールの値を設定することはできません。
-
レポート上のバインドされたコントロールおよび演算コントロール
-
フォーム上の演算コントロール
ヒント
"SetValue/値の代入" マクロ アクションを使って、フォーム ビューのフォームの表示または非表示を設定できます。 [アイテム] ボックスに「Forms!formname.Visible」と入力し、[式] ボックスに「No」または「Yes」と入力します。 モーダル フォームの Visible プロパティを No に設定すると、フォームは非表示でモードレスになります。 プロパティを Yes に設定すると、フォームは表示され、再びモーダルになります。
マクロで"SetValue/値の設定" アクションを使用してコントロールの値を変更したり、新しいデータを追加したりしても、BeforeUpdate、BeforeInsert、またはユーザー インターフェイスでこれらのコントロールのデータを変更または入力するときに発生する変更などのイベントはトリガーされません。 これらのイベントは、VBA (VBA) モジュールでコントロールの値を設定Visual Basic for Applications場合にも発生しません。
このアクションは、VBA モジュールでは使用できません。 VBA で直接値を設定してください。
例
マクロを使用してコントロールの値を設定する
次のマクロでは、[仕入先] フォームのボタンから [商品の追加] フォームを開きます。 "Echo/エコー"、"Close/閉じる"、"OpenForm/フォームを開く"、"SetValue/値の代入"、および "GoToControl/コントロールの移動" の各マクロ アクションの使い方を説明します。 "SetValue/値の代入" アクションでは、[商品] フォームの [仕入先コード] コントロールに、[仕入先] フォームの現在の仕入先を設定します。 "GoToControl/コントロールの移動" アクションで、[仕入先コード] フィールドにフォーカスを移動し、そこで新しい製品のデータを入力できます。 このマクロは、[仕入先] フォームの [商品の追加] ボタンに設定します。
アクション |
引数: 設定 |
コメント |
Echo |
エコーの設定:いいえ |
マクロの実行中に画面の更新を停止します。 |
Close/閉じる |
オブジェクトの種類: "フォーム" Object Name/オブジェクト名: 製品/サービス項目の一覧 Save/保存: いいえ |
製品/サービス項目の一覧フォームを閉じます。 |
OpenForm/フォームを開く |
"Form Name/フォーム名":商品 ビュー: "フォーム" "Data Mode/データ モード":"Add/追加" ウィンドウモード: "標準" |
[商品] フォームを開きます。 |
"SetValue/値の代入" |
"Item/アイテム": [Forms]![商品]![仕入先コード] "式":仕入先コード |
[仕入先コード] コントロールに [仕入先] フォームの現在の仕入先を設定します。 |
GoToControl/コントロールの移動 |
"Control Name/コントロール名":商品コード |
[商品コード] コントロールに移動します。 |