適用先: Access 2013、Office 2013
" SetValue/値の代入 " アクションを使用すると、フォーム、フォーム データシート、またはレポートの Microsoft Access フィールド、コントロール、あるいはプロパティの値を設定できます。
注:
- [!メモ] " SetValue/値の代入 " アクションを使用して、オブジェクトを返す Access プロパティの値を設定することはできません。
- このアクションは、データベースが信頼されていない場合には許可されません。
Setting
"SetValue/値の代入" アクションの引数は次のとおりです。
アクションの引数 |
説明 |
---|---|
Item |
値を設定するフィールド、コントロール、またはプロパティの名前を指定します。 [マクロ ビルダー] ウィンドウの [アクションの引数] セクションにある [アイテム] ボックスに、フィールド、コントロール、またはプロパティの名前を入力します。 このアイテムを参照するには、controlname (マクロが呼び出されたフォームまたはレポートのコントロールの場合)、Forms!formname!controlname など、完全な構文を使用する必要があります。 この引数は省略できません。 |
Expression |
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 アクションを使用して、フォーム ビューのフォームの表示または非表示を設定できます。 「フォーム」と入力します。formname**.[アイテム] ボックスに [表示] **、[式] ボックスに [いいえ] または [はい] を指定します。 モーダル フォームの Visible プロパティを No に設定すると、フォームは非表示およびモードレスになります。 このプロパティを Yes に表示すると、フォームは表示され、再度モーダルになります。
マクロで " SetValue/値の代入 " アクションを使用してコントロールの値を変更するか新しいデータを追加した場合、ユーザー インターフェイスのこれらのコントロールのデータを変更または入力するときに発生するイベント ( BeforeUpdate 、 BeforeInsert 、 Change など) はトリガーされません。 これらのイベントは、Visual Basic for Applications (VBA) モジュールを使用してコントロールの値を設定しても発生しません。
このアクションは VBA モジュールでは使用できません。 値は Visual Basic で直接設定します。
例
マクロによるコントロールの値の設定
次のマクロは、[仕入先] フォームのボタンから [製品の追加] フォームを開きます。 Echo、CloseWindow、OpenForm、SetValue、および GoToControl アクションの使用を示します。 SetValue アクションは、Products フォームの SupplierID コントロールを、Suppliers フォームの現在のサプライヤーに設定します。 GoToControl アクションは、フォーカスを CategoryID フィールドに移動します。ここで、新しい製品のデータの入力を開始できます。 このマクロは、[仕入先] フォームの [製品の追加] ボタンに添付する必要があります。
アクション |
引数: 設定値 |
コメント |
---|---|---|
Echo |
Echo On/エコーの設定: いいえ |
マクロの実行中に画面の更新を停止します。 |
CloseWindow |
オブジェクトの種類: フォームオブジェクト名: 製品リスト保存: いいえ |
製品/サービス項目の一覧フォームを閉じます。 |
OpenForm |
フォーム名: 製品ビュー: フォームデータ モード: 追加ウィンドウ モード: 標準 |
[商品] フォームを開きます。 |
SetValue |
Item/アイテム: [フォーム]![製品]![SupplierID] Expression/式: SupplierID |
[仕入先コード] コントロールに [仕入先] フォームの現在の仕入先を設定します。 |
GoToControl |
"Control Name/コントロール名":商品コード |
[商品コード] コントロールに移動します。 |