次の方法で共有


FindRecord マクロ アクション

適用先: Access 2013、Office 2013

FindRecord アクションは、 FindRecord/レコードの検索 引数で指定した抽出条件を満たす最初のデータのインスタンスを検索するために使用します。 カレント レコード、次のレコード、前のレコード、または最初のレコードのデータに対する検索で使用できます。 アクティブなテーブル データシート、クエリ データシート、フォーム データシート、またはフォームのレコードを検索できます。

設定

FindRecord アクションの引数は次のとおりです。

アクションの引数

説明

Find What/検索する文字列

レコード内で検索するデータを指定します。 マクロ ビルダー ウィンドウの [アクション引数] セクションの [検索対象] ボックスに、式の前に等号 (=) を付けて検索または入力するテキスト、数値、または日付を入力します。 ワイルドカード文字を使用できます。 これは必須の引数です。

Match/検索条件

フィールドのどの部分を検索するかを指定します。 フィールドの一部 ([フィールドの一部分])、全体 ([フィールド全体])、または先頭 ([フィールドの先頭]) を対象にデータを検索するよう指定できます。 既定値は [フィールド全体] です。

Match Case/大文字/小文字を区別する

大文字と小文字を区別して検索するかどうかを指定します。 大文字と小文字を区別する場合は [ はい]、区別しない場合は [ いいえ] をクリックします。 既定値は [ いいえ] です。

検索

カレント レコードから先頭のレコードに向かって検索するか ([上へ])、末尾のレコードに向かって検索するか ([下へ])、レコードの末尾に向かって検索した後にレコードの先頭からカレント レコードに向かって検索して、すべてのレコードを検索するか ([すべてのレコード]) を指定します。 既定値は [すべてのレコード] です。

Search As Formatted/表示書式で検索

表示書式でデータを検索するかどうかを指定します。 Microsoft Office Access 2007 で、フィールドに表示されている書式でデータを検索する場合は [ はい] を、データベースに格納されている形式 (表示されている形式とは異なる場合があります) で検索する場合は [ いいえ] をクリックします。 既定値は [ いいえ] です。 この機能を使用すると、特定の書式のデータだけを検索することができます。 たとえば、コンマが含まれる書式が設定されたフィールドで "1,234" の値を検索する場合は、[ はい] をクリックし、" Find What/検索データ " 引数に「 1,234 」と入力します。 「 1234」と入力してこのフィールドでデータを検索する場合は、[ いいえ] をクリックします。 日付の検索では、2003-07-08 のような書式が設定された日付を検索する場合は [ はい] をクリックします。 [ いいえ] をクリックした場合は、Windows コントロール パネルの地域の設定で設定されている書式を使って " Find What/検索データ " 引数を入力します。 この書式は、地域の設定の [ 日付] タブにある [ 短い形式] ボックスに表示されています。 たとえば、[ 短い形式] ボックスに [ yy/M/d] が設定されている場合は、「03/7/8」と入力すると、このフィールドの書式にかかわらず、2003 年 7 月 8 日に対応する [日付] フィールドのすべてのエントリが検索されます。

: 引数 Search As Formatted は、現在のフィールドがバインドされたコントロールである場合にのみ有効になります。 Match 引数は フィールド全体に設定され、 現在のフィールドのみ 引数は Yes に設定され、 Match Case 引数は No に設定されます。

If you set Match Case to Yes or Only Current Field to No, you must also set Search As Formatted to Yes.

Only Current Field/カレント フィールドのみ

各レコードのカレント フィールドだけで検索するか、または各レコードのすべてのフィールドで検索するかを指定します。 カレント フィールドを検索する方が速くなります。 カレント フィールドだけで検索する場合は [ はい] をクリックし、各レコードのすべてのフィールドで検索する場合は [ いいえ] をクリックします。 既定値は [ はい] です。

Find First/先頭から検索

先頭のレコードから検索を開始するか、カレント レコードから検索を開始するかを指定します。 先頭のレコードから開始する場合は [ はい] をクリックし、カレント レコードから開始する場合は [ いいえ] をクリックします。 既定値は [はい] です。

注釈

マクロの FindRecord アクションが実行されると、各レコードで指定データが検索されます (検索順序は Search/検索 引数の設定値によって決まります)。 指定データが見つかると、そのレコードの該当データが選択されます。

FindRecord アクションの動作は、[ ホーム] タブの [ 検索] をクリックした場合と同じで、その引数は [ 検索と置換] ダイアログ ボックスのオプションと同じです。 [マクロ ビルダー] ウィンドウで FindRecord/レコードの検索 引数を設定してからマクロを実行した場合、[ 検索] をクリックしたときに [ 検索と置換] ダイアログ ボックスで、対応する各オプションが選択されていることがわかります。

データベースの操作中は、直近の FindRecord/レコードの検索 引数が保持されるので、次に FindRecord アクションを使用するときに、同じ検索条件を繰り返し入力する必要はありません。 引数を指定しない場合、前回実行した FindRecord アクションまたは [ 検索と置換] ダイアログ ボックスで最後に設定した引数の値が使用されます。

マクロを使ってレコードを検索する場合は、 RunMenuCommand アクションの引数の設定によって [ 検索] コマンドを実行するのではなく、 FindRecord アクションを使用します。

注:

[!メモ] FindRecord アクションは、テーブル、クエリ、およびフォームでは [ ホーム] タブの [ 検索] コマンドに対応していますが、コード ウィンドウでは [ 編集] メニューの [ 検索] コマンドに対応していません。 FindRecord アクションで、モジュール内のテキストを検索することはできません。

現在選択されているテキストが、 FindRecord アクション実行時の検索テキストと同じである場合は、同じレコードの同じフィールドの、選択されているテキストの直後から検索が開始されます。 選択されているテキストと検索テキストが異なる場合は、カレント レコードの先頭から検索が開始されます。 このため、1 つのレコードに同じ検索条件を満たすテキストが複数存在する場合の検索が可能です。

ただし、コマンド ボタンを使用して FindRecord アクションを含むマクロを実行すると、検索条件の最初のインスタンスが繰り返し検出されることに注意してください。 This behavior occurs because clicking the command button removes the focus from the field containing the matching value. FindRecord アクションは、レコードの先頭から検索を開始します。 この問題を回避するには、カスタム ツール バー ボタンや AutoKeys マクロで定義されているキーの組み合わせなど、フォーカスを変更しない手法を使用してマクロを実行するか、 FindRecord アクションを実行する前に、マクロ内のフォーカスを検索条件を含むフィールドに設定します。

セキュリティノートセキュリティノート
重要な情報または機密情報には SendKeys ステートメントまたは AutoKeys マクロを使用しないでください。 悪意のあるユーザーがキー入力を途中で遮り、コンピューターおよびデータのセキュリティを侵害するおそれがあります。

コマンド ボタンを使って、 FindNext アクションが含まれているマクロを実行する場合も、同様の問題が発生します。

Visual Basic for Applications (VBA) モジュールで FindRecord アクションを実行するには、 DoCmd オブジェクトの FindRecord メソッドを使用します。

複雑な検索の場合は、 SearchForRecord マクロ アクションを使用することもできます。