データの検索、ソート、および置換 > レコードの検索 > 異なるフィールドの値が等しいレコードの検索
 
異なるフィールドの値が等しいレコードの検索
レコード内の複数のフィールドの値が同じであるレコードを検索することができます。たとえば、支払額が請求額と同じである注文をすべて検索します。計算フィールドまたはスクリプト内のループを使用して、各レコード内の 2 つのフィールドの値を比較します。
計算フィールドを使用して等しい値を含むレコードを検索するには、次の操作を行います。
1. 比較するフィールドを含むテーブルで、結果のタイプが数値である計算フィールドを作成します。計算フィールドの定義を参照してください。
たとえば、「CompareFields」という名前の計算フィールドを作成します。
2. [計算式の指定] ダイアログボックスで、2 つのフィールドを比較する式を入力します。
たとえば、式フィールド A = フィールド B は、両方のフィールドが同じ値の場合のみ「CompareFields」フィールドを 1 に設定します。それ以外の場合、「CompareFields」の値は 0 になります。
3. 計算フィールド (CompareFields) をレイアウトに追加します。
レイアウト上のフィールドの配置と削除を参照してください。
4. 検索条件を開き、計算フィールド (CompareFields) に[1]を入力して [検索実行] をクリックします。
検索条件の指定を参照してください。
対象レコードは、計算フィールド「CompareFields」が 1 に等しいすべてのレコードです。つまり、フィールド A の値がフィールド B の値と同じであるすべてのレコードです。
スクリプトを使用して等しい値を含むレコードを検索するには、次の操作を行います。
1. スクリプトを作成します。
スクリプトの作成と編集を参照してください。
2. スクリプトに以下のステップを追加します。テーブル:: フィールド A および テーブル:: フィールド B は、比較する特定のレイアウト (この場合、「レイアウト」) 上の 2 つのフィールドです。
レイアウト切り替え [「レイアウト」 (テーブル) ]
全レコードを表示
レコード/検索条件/ページへ移動 [ 最初の ]
Loop
If [ テーブル:: フィールド A = テーブル:: フィールド B ]
レコード/検索条件/ページへ移動 [ 次の; 最後まできたら終了 ]
Else
レコードを対象外に
End If
End Loop
3. 作成したスクリプトを実行します。
すべてのレコードを表示してから、最初のレコードに移動します。次に各レコードの 2 つのフィールドを比較し、フィールド A とフィールド B が等しくないレコードを除外します。
メモ  計算フィールドまたは上記の If スクリプトステップで、等号記号の代わりに比較演算子または論理演算子を使用してフィールドを比較することができます。たとえば、テーブル:: フィールド A > テーブル:: フィールド B を使用して、フィールド A がフィールド B より大きいレコードを検索できます。比較演算子および論理演算子を参照してください。