3 返信 最新の回答 日時: May 17, 2015 6:27 PM ユーザー:parc_box

    Case関数で頭を抱えてしまってます。(昨日の続き)

    parc_box

      タイトル

      Case関数で頭を抱えてしまってます。(昨日の続き)

      フォーラムに投稿

      Case関数についての質問です。(昨日の続きです)

      【内容】
      フィールド「作業番号」を照合フィールドとしてリレーションを
      組んでる【DB_A】と【DB_B】と【DB_C】。
      【DB_C】のフィールド「ログ」にて【DB_A】【DB_B】それぞれに記録されてる
      作業ログを反映させようとしています。


      【質問】
      今回はCase関数が使えそうだと考え、次の計算式を【DB_C】の「ログ」フィールドの
      オプションで次の計算式を入力しました。

      Case ( 作業DBフラグ = "【DB_A】" ; ログ = "【DB_A】::ログ" ; 作業DBフラグ = "【DB_B】" ; ログ = "【DB_B】::ログ" ; )

      ですが、今回も梨のつぶてで、さっぱり「ログ」フィールドに反映されません。

      「""」の要不要についても勘だよりなレベルの自分なので、もっと実例の多い本でも
      探さないとダメかも考えてます。(入門書や関数スクリプト辞典までは購入したのですが)
      そもそもCase関数であってるかどうかも自信がなくなってます。

      一冊、実例が多そうな書籍を見つけたので、週末にでも注文しようと考えてます。

        • 1. Re: Case関数で頭を抱えてしまってます。(昨日の続き)
          parc_box

          昨日からちょと反応変わったので、補足。
          現在、【DB_C】の「ログ」フィールドの計算式は
          こうなってます。

          Case (
          Exact
          ( 作業DBフラグ ; "項目情報DB" );
          Lookup
          ( ログ = 【DB_A】::ログ );
          Exact
          ( 作業DBフラグ ; "製品情報マスターDB" );
          Lookup
          ( ログ = 【DB_B】::ログ )
          )

          ──上記内容にしたら【DB_C】の
          「ログ」フィールドには

          「?」と反応を返してくれる様になりました。
          今まで無反応だっただけに、追記しておきます。

          • 2. Re: Case関数で頭を抱えてしまってます。(昨日の続き)
            sago350@未来Switch

            整理すると

            Case (
            Exact( 作業DBフラグ ; "項目情報DB" )        ; Lookup( ログ = 【DB_A】::ログ );
            Exact( 作業DBフラグ ; "製品情報マスターDB" ); Lookup( ログ = 【DB_B】::ログ )
            )

            となりますが、
            たぶん、↓こうしたいのかしら・・・

            Case (
            作業DBフラグ = "項目情報DB          ; 【DB_A】::ログ ;
            作業DBフラグ = "製品情報マスターDB" ; 【DB_B】::ログ ;
            ""
            )


            Lookup( ログ = 【DB_A】::ログ )
            と、たぶんログフィールドに【DB_A】::ログを入れようとしてるんですけど、それは間違いで、そもそもログフィールドの計算値自動入力に入っているので、ログフィールドに入ることにすでになっています。
            あと、Exactが好きみたいですが、厳密に比較したい時以外は=で十分です。

             

            • 3. Re: Case関数で頭を抱えてしまってます。(昨日の続き)
              parc_box

              sago35さん
              RESありがとうございます。

              sago35さんの仰るとおり、【DB_C】のログフィールドに対して【DB_A】と
              【DB_B】それぞれに『既に計算式から自動入力されてる「それぞれのログ」を
              【DB_C】の一箇所で確認できるようにしたい』というところから作成を
              開始してます。

              Lookupを二重で実行させようとしてた…という事でしょうか。
              Exactも、す、スキじゃないんだからね!!!
              (手直しを続けてる内にいつの間にか入ってしまったという流れですorz)

              ──という訳で、今回も頂いたヒントで解決出来ました。
              ありがとうございます><。