次の方法で共有


SetValue マクロ アクション

適用先: 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/値の代入 " アクションを使用してコントロールの値を変更するか新しいデータを追加した場合、ユーザー インターフェイスのこれらのコントロールのデータを変更または入力するときに発生するイベント ( BeforeUpdateBeforeInsertChange など) はトリガーされません。 これらのイベントは、Visual Basic for Applications (VBA) モジュールを使用してコントロールの値を設定しても発生しません。

このアクションは VBA モジュールでは使用できません。 値は Visual Basic で直接設定します。

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

次のマクロは、[仕入先] フォームのボタンから [製品の追加] フォームを開きます。 EchoCloseWindowOpenFormSetValueおよび GoToControl アクションの使用を示します。 SetValue アクションは、Products フォームの SupplierID コントロールを、Suppliers フォームの現在のサプライヤーに設定します。 GoToControl アクションは、フォーカスを CategoryID フィールドに移動します。ここで、新しい製品のデータの入力を開始できます。 このマクロは、[仕入先] フォームの [製品の追加] ボタンに添付する必要があります。

アクション

引数: 設定値

コメント

Echo

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

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

CloseWindow

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

製品/サービス項目の一覧フォームを閉じます。

OpenForm

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

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

SetValue

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

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

GoToControl

"Control Name/コントロール名":商品コード

[商品コード] コントロールに移動します。