言葉の表現がムズイ
検索元テーブルのフィールド値により、別テーブルのレコードを絞りたい!
2つのテーブルの重複レコードと言えばいいのか?表現が難しいですが、検索元レコードのフィールド値により、検索先のテーブルレコードを絞りたいのです。
実験用ファイル準備
上のような検索する値が入力されているテーブル(検索元テーブル)を準備しました。
次に、検索してデータが絞られる側のテーブル(Loop検索実験)を準備しました。
検索値のあるテーブル(検索元テーブル)のレイアウトを作成して、「Loop検索」というボタンを設置して、これにスクリプトを実装していくことにしました。
スクリプトを準備
今回も初めて見るエラーがでました。
ココに注意
ターゲットが関連テーブルの一部でないため、この処理は完了できません。
これは、スクリプトで処理している現在のレイアウトと、フィールド設定にて指定した内容が間違っていると出るエラーのようです。
自分の場合も、フィールド設定において、スクリプト内で表示されているであろう現在のレイアウトとフィールド設定の内容が違うテーブルのフィールドを設定していました。
良い勉強になりました。
さて、実際にうまく行ったスクリプトが下記のようになります。
まとめ(動作テスト)
「Loop検索」ボタンにスクリプトを設定してクリックすると下記の様な結果になりました。
正に自分が欲しいと思っていた機能が実装できました。
ちなみに、検索元テーブルに同じ検索ワードがあった場合の動作テストをしてみました。
結果は、検索元テーブルにて同じ検索値が複数あっても、検索されるレコードは同じでした。
つまり、
ココがポイント
検索値は重複しても検索されるレコードは問題ない
検索元テーブルにて、検索レコードを全削除して検索値が無い状態を作ってみました。
上の画像のようなメッセージがでました。
スクリプト内に「エラー処理」を入れると何事もなく何も検索されない状態のレコードが表示されました。
検索モードからの別フィールドでの複数検索は簡単なのですが、同じフィールドで複数検索をするケースと言うのは、ちょっと難しく考えてしまいます。
自分も、このスクリプトだけで2時間は要してしまいました。なかなか、「検索実行」じゃなく、「対象レコードの拡大」という検索方法までたどり着くまで時間がかかってしまいました。
一度このような検索方法(データを抽出)を経験しておけば次回は余計な時間を費やさなくても済みそうですね。