- 締切済み
ファイルメーカーでルックアップ値として入力したフィールドの検索ができません。
WinME、ファイルメーカー6です。 ファイルが二つあり、これをマスターファイルと関連ファイルとします。 マスターファイルには「フリガナ」「カナ行名」(いずれもテキスト)「フリガナ頭文字」というフィールド、関連ファイルに「カナ50音」「行名」(いずれもテキスト)というフィールドがあります。 マスターファイルの「フリガナ頭文字」は計算タイプ&テキストで 「Left( フリガナ , 1 )」の計算式が入力されています。(ファイル画面上は非表示) 関連ファイルはブラウズモードの表形式で下のようになっており、カナ50音「ア~ン」とその行名を各フィールドに入力してあります。 カナ50音 行名 ア ア イ ア ウ ア エ ア オ ア カ カ キ カ ↓ 以下省略 マスターファイルと関連ファイルにはリレーションを張っており、「フリガナ頭文字」←→「カナ50音」を照合フィールドとし、関連ファイルの「行名」をマスターファイルの「カナ行名」にルックアップ値で引いて来るようにしております。(答はもちろん出てます。) さて、お尋ねですが、このマスターファイルの「カナ行名」フィールドで、例えば「ア」と検索すると、「この検索条件に該当するレコードはありません」の答えが返り、どうしても検索出来ないのです。 試みにマスターファイルに別に「test」というフィールドを作り、「Hiragana( カナ行名 )」と計算式を設けて、「カナ行名」の文字をひらがなで表示しようとしたところ、全く表示されません。 そもそもルックアップ値は、検索にもまた計算データとしても使えないのでしょうか。 それとも検索や計算可能な方法が何かあるのでしょうか。 ご存知の方よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- bucchukun
- ベストアンサー率43% (18/41)
#1です。 ルックアップが検索できないときは、リレーションの張り方に問題が潜んでいる場合があるので、一度確認してみてください。 ご質問文での検証作業は問題の起こっているファイルで実施していらっしゃいますが、新規に作ったファイル(マスター+参照)で同様の現象が起こるかどうかを試してみてはいかがでしょうか?
- bucchukun
- ベストアンサー率43% (18/41)
直接の回答ではありませんが、この手の計算はマスターファイル内に計算フィールドとして持っていたほうが、確実に動作すると思いますよ。もちろん計算結果の検索にも問題ありません。 リレーションを張って計算させるのは、計算の組合せ(ア=ア、イ=ア、ウ=ア)の相互に追加・削除・変更のある場合に便利ですが、この場合、ア=ア、イ=アの関係性はは固定的なので、Case関数等で計算させてみてはいかがでしょうか? ----------------------- Case( カナ50音="ア","ア" カナ50音="イ","ア" ・・・・ ) ----------------------- 例えば、合併の予定のある市町村名から都道府県名を割り出す(青梅市=東京都)には参照ファイルを作り、都道府県名から地方名を割り出す(東京=関東地方)には計算式の方が楽になりますよ。もちろん技術的にはどちらも可能ですが。
補足
ご回答ありがとうございます。 たしかにCASE関数で計算式を設定することは可能で、私も通常引数が3~4個程度のときは使っています。 しかしこの場合は「フリガナ頭文字="ア","ア"」の類が何しろ「ア~ン」で46個ですからね。 実は他の例として約7年分365日の社員の作業実績を記録したマスターファイルがあり、年月日を入力すると、それが日曜祝日の場合は、約20年分を一覧表にした関連ファイルからルックアップで日曜日又は祝日名を引っ張って来るようになっておりまして、こっちの方は例えば「春分の日」で検索すると7年分の春分の日のレコードが検索出来るのです。 質問例で挙げたものとの違いは、上記と違って、照合フィールドの「フリガナ頭文字」が関数で計算するということだけなのです。 それだけのことで「カナ行名」の検索も計算も出来ないという理由がどうしても分からないのです。もし思い当たる理由をお気付きでしたらよろしくお願いします。
お礼
当初投稿日から10日を経過したにもかかわらず、まだ気に留めていただき、感謝します。 実は問題自体は、数日後自分でいろいろ試した結果一応解決しております。 その方法は、今まで入力オプションのルックアップ値で答を指定していましたがこれを解除し、フィールド定義で「テキスト」でなく「計算」に改め、計算式の指定で =関連ファイル::行名 と定義、計算結果はテキストと変更して作業したら、答も検索も出来るようになりました。 また試みに計算式を =Katakana(関連ファイル::行名) としてもOKでした。 このように結果オーライとはいうものの、前回ご質問の補足(お礼)で例示したように、他の例では出来たのに、同じことがこの場合出来ないという原因がどう考えても分からないのです。 もちろん今回のご回答にしたがい、全く同じ作業を新規ファイルで一から作り直してみてもやっぱり駄目でした。 問題解決という結果は別として、(他の方の回答もなく)原因不明という消化不良状態は依然そのままで、どうもすっきりしません。 ともあれご回答たいへんありがとうございました。心からお礼申し上げます。