• ベストアンサー

ファイルメーカーのフィールドの計算式について

いつもお世話になっております。 ファイルメーカーのフィールドに関して ご教授いただけないでしょうか。 一つのテーブルに日付,業者ID,業務IDと 三つのフィールドを設定してあります。 日付はタイムスタンプで、 「2006/12/8 10:00:00」 という形のデータが入っています。 業者IDはa001~a999という形の データが入っています。 業務IDフィールドに、日付+業者IDのデータが 自動的に入力する形にしたいと思っています。 つまり、 (例) 日付: 2006/12/08 10:00:00 業者ID: a998 だとすれば、 業務IDに 20061208100000a998 というデータを入れたいと思います。 上記のようにするには、 業務IDフィールドにどのような計算式を 入れたら良いでしょうか。 よろしくお願い申し上げます。 以下私信失礼致します。 chieffish様: その節は大変お世話になりました。 透明のオブジェクトで1行を選択する件、 再度行なったところ仰るとおり成功しました。 有難うございました。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

タイムスタンプのフォーマットが統一されていること(つまり、年月日の区切りが「/」、年月日と時刻の区切りが「 」、かつ時刻の区切りが「:」になっていること)を前提とすれば、 Substitute ( GetAsDate ( Left ( タイムスタンプ ; Position ( タイムスタンプ ; " " ; 1 ; 1 ) ) ) ; "/" ; "" ) & Substitute ( Substitute ( Right ( タイムスタンプ ; 8 ) ; " " ; "0" ) ; ":" ; "" ) & 業者ID でよいかと存じます(計算結果はテキスト)。フォーマットが統一されていない場合には、統一するか、それらの区切りすべての置換を行います。 (「0」の置換は、09:00:00が、9:00:00となる場合等を想定しています)

rapis55
質問者

お礼

optimizer様: ご回答有難うございました。 まさにこれです!!成功しました。 大変助かりました。有難うございました。

その他の回答 (1)

  • otoutann
  • ベストアンサー率26% (248/933)
回答No.1

計算結果はテキストで 業務ID= Year ( 日付 ) & If ( Month ( 日付 ) ≥ 10 ; Month ( 日付 ) ; "0" & Month ( 日付 )) & If ( Day ( 日付 ) ≥ 10 ; Day ( 日付 ) ; "0" & Day ( 日付 )) & If ( Hour ( 日付 ) ≥ 10 ; Hour ( 日付 ) ; "0" & Hour ( 日付 )) & If ( Minute ( 日付 ) ≥ 10 ; Minute ( 日付 ) ; "0" & Minute ( 日付 )) & If ( Seconds ( 日付 ) ≥ 10 ; Seconds ( 日付 ) ; "0" & Seconds ( 日付 )) & 業者ID でよろしいかと。なおVer.8のMac版です。

rapis55
質問者

補足

otoutann様: 早速のご回答有難うございます。 こちらの環境を記載するのを すっかり忘れておりました。失礼致しました。 Ver.8で、Windows版となっております。 それで、 ご教授いただいたとおりに入れてみたのですが、 #8805に関して「指定されたフィールドがありません」と表示されてしまいます。 #8805とは何を表しているのでしょうか。 お手数ですが引き続きお願い致します。

関連するQ&A

  • ACCESS テーブル内の特定の文字の置換

    お世話になっております。 Access2007+VBAについてになります。 フィールド内の特定の文字を置き換えたいのですが、どのようしたら良いでしょうか。 例えば・・・ テーブル_Aと、テーブルBがあります。 テーブルAには、フィールドCに抽出したいデータのIDが入っています。 テーブルBには、フィールドDに置換えたい日付が入っています。 フィールドDの日付は、『日付は2015-12-22です。』となっており、 フィールドCのIDと、テーブルBにあるフィールドEというIDがマッチしたフィールドDの日付を、『日付は、2015-12-23です。』に置き換えたいと思っています。 IDは、両方ともに、オートナンバー型ではありません。 色々試してみたのですが、全く分かりません。 是非、ご教授をお願い致します。

  • ファイルメーカー 同一IDと日付への番号振り当て

    Aテーブル(伝票)とBテーブル(明細1商品で1レコード)があり A 受注シリアル 日付 顧客ID 合計金額 B 受注シリアル 受注ID 日付 商品名 色 数 小計 フィールドがあり 受注シリアルでリレーションをはり、AにBの内容(商品名、数、色など)をポータル表示させようと考えております。 今回の質問は今まで一つのテーブルで作業をしていたので一度2つのテーブルに別ける事にしました。 今までのデータをBテーブルのフィールド(顧客ID、日付、商品名、数、小計)へ振り分ける事はできたのですが、受注シリアルへ番号を振り分ける作業でつまづいてしまいました。 同日付と顧客IDに番号(受注シリアル)を振り当てるにはどうすればいいでしょうか? 現在Bテーブルに約20000レコードあります。 よろしくお願いいたします。

  • Access 数値フィールドのデータを日付としてまとめたい

    いつもお世話になっています。 Accessで3つのフィールドに2006、4、25 と年、月、日 として扱うデータが入っています。 業務上どうしても別々のフィールドに置いておいたほうがよいので、そうしたのですが。 その3つのデータを、1つのフィールドに日付としてまとめるやり方を教えてください。 よろしくお願いします。

  • 2つのフィールドを1フィールドの認識でソートする方法

    いつも拝見させて頂いております。 さっそくですが、SQLでのソート方法について悩んでおりまして解 決方法または参考資料等がありましたらご教授願えますでしょうか。 ある2つのテーブルからそれぞれの異なったフィールドを参照して2 つのフィールドを1つのフィールドとして認識してソートをかけたい のです。実際には各テーブルにあるKEYフィールドにてリンクをし て、ソートの対象は各テーブルにあるDATEフィールドです。 テーブルA  KEY  CHAR  DATE CHAR テーブルB  KEY  CHAR  DATE CHAR 実際のイメージとしては下記の様なイメージです。 テーブルA.KEY テーブルA.DATE テーブルB.DATE AAA       20040101    AAA       20040102    AAA       20040102    AAA                  20040102 AAA       20040103    条件としては 1.テーブルAとテーブルBが同一の日付であった時はテーブルBの   データを最後尾に持ってくる。 2.テーブルAとテーブルBのデータは別レコードになる様にする。 以上、このようなことができるかどうかわかりませんが、宜しくお願い致します。

  • ファイルメーカー8 データ加工後、別テーブルのフィールドへ移行

    こんにちは!! スクリプトにより、 フィールドのデータを、別テーブルのフィールドへ、 加工してから移行する時、どのようにやっていますか? たとえば、 テーブル1、テーブル2とあります。 テーブル1にはIDフィールド、テーブル2にはお客様番号フィールド。 移行したいレコードを、チェックボックスにより選択させ、 スクリプトを実行したとき、 選択されたレコードに対し テーブル1のIDフィールドを元に、 "hoge"を文頭に追加してから、テーブル2のお客様番号フィールドに 入力。 1レコード終わったら、次のレコード。 試しに1つ作ってみました。 移行元フィールドのデータをコピーし、移行先フィールドに移動、 貼り付け。 まだ、複数レコードがあっても、1フィールドだけなので 大丈夫ですが、 こういう処理をしたいフィールドは30以上あります。 もっと良いスクリプトの書き方は、ないでしょうか? なぜこのような事がしたいかと言いますと、 多店舗あるネットショップの顧客情報などを管理したいと思ってます。 それぞれのネットショップでは、顧客情報や商品情報などを 独自のフィールドでCSVとして吐き出します。 各店舗用テーブルへCSVを取り込み、 それぞれのスクリプトにより、 加工しながら、一括管理テーブルへと移行させたいのです。 説明が下手で申し訳ありませんが、何卒よろしくお願いいたします。

  • ACCESS2007でフィールドの結合-空欄フィールドと日付フィールド

    ACCESS2007でフィールドの結合-空欄フィールドと日付フィールド またお世話になります。 一つのテーブル内の複数フィールドを結合して別フィールドを作りました。固定長で桁を全て揃えたデータが必要です。 table F1(text 3)|F2(text 3)|F3(text 10)|F4(date) 001 | 006 | harumaki | 31.3.2010 002 | 001 | (空白) | 1.4.2010 003 | 007 | (空白) | (空白) クエリ select F1 & F2 & F3 & space (10-len(F3)) & F4 as ketsugo from table; 結果 ketsugo 001006harumaki 31.3.2010 エラー エラー 問題1 空白フィールド 1つめのように全フィールドデータが入っていれば問題はないのですが、空白フィールドが入っている所でエラーが出てしまうようです。 F2を空白にして他を全て埋めた場合は、F2には固定長にするspaceが入っていないので詰まってしまうだけです。F3は10桁になるようデータの後ろにスペースが入ります。 クエリに問題があるのでしょうか。それともフィールドの定義でしょうか。 問題2 日付フィールド 日付を31.3.2010ではなく、31032010と直して変換したいです。 日付型ではなく、text 8にして、31032010とか01042010のように入力するしかないのでしょうか。 よろしくお願いいたします。

  • 計算式とリレーションによるcountについて

    ファイルメーカーに詳しい方教えて下さい。 【環境】 win7 FM11 PRO ADV 【質問】 「集計用テーブル」 フィールド内容 (1)フィールドA(2)集計開始(グローバル・日付)(3)集計終了(グローバル・日付)(4)済フラグ(テキスト) (5)済集計用(計算) データ内容 (1)フィールドA(データ1)(2)特定期間開始日(3)特定期間終了日(4)済 (1)フィールドA(データ2)(2)特定期間開始日(3)特定期間終了日(4)済 (1)フィールドA(データ3)(2)特定期間開始日(3)特定期間終了日(4)済 「日付別フィールド」 フィールド内容 (1)日付(日付)(2)フィールドA(3)完了フラグ(テキスト) データ内容 (1)日付(2)フィールドA(データ1)(3)済 ・ ・ ・ 上記にて、特定の日付間(グローバルフィールド)によるフィールドA(データ1・データ2・データ3とありますがデータ1~3全体に関する集計)に関する「済」のcountを行なっており、リレーションにて下記のように設定しております。 日付>=集計開始 日付<=集計終了 完了フラグ=済フラグ この状態で、集計用テーブルの(5)済集計用(計算)=count(日付別フィールド::完了フラグ)を実行するときちんと、countしてくれるのですが、現在この完了フラグを手入力にて「済」と入力しています。この完了フラグを計算式(if(〇〇フィールド="XX";"済";"")と〇〇フィールドの条件により【済】or「空白」が入るような設定に変えた途端「集計用テーブル」(5)済集計用(計算)フィールドのデータが「?」と表示されるようになりました。特にリレーション等はいじった形跡もなくデータもきっちり「済」と入力されているのですが(ifによる計算結果により)、何が問題なのでしょうか? 初めての投稿になり、説明不足の点があるかとは思いますが、よろしくお願いします。 以下のようなテーブル・フィールド間にて

  • [集計フィールドの挿入]の計算結果がおかしい

    ピボットテーブルについて教えてください。 ピボットテーブルで、[集計フィールドの挿入]を行い、フィールドAとフィールドBを割り算したところ、計算結果が正しくありません。 ・フィールドAは合計で集計したもの ・フィールドBはデータの個数を合計したもの 仮に、フィールドAが100、フィールドBが20だとすると、計算結果は割り算で正しくは5となるはずですが、そうなりません。 どうやらフィールドBが、データの個数ではなく、データの合計の値でもって計算されてしまっているようです。 正しく計算される方法を教えてください。 エクセルのバージョンは2010です。 宜しくお願い致します。

  • ファイルメーカーPro8の検索

    検索について悩んでいます。複数のフィールドを同時に検索したいのですが、良い方法はないでしょうか? ・業務日誌をテーブルA、検索用レイアウトがテーブルBとします。 テーブルBのフィールドは、開始日、終了日、氏名、があります。テーブルAには作成日、氏名、があります。上記の3つを検索したいのですができません。 期間(開始日...終了日)。日付指定の1日(開始日)と氏名の2種類を別々にはできるのですが、両方を同時にできるスクリプトがうまくいきません。 よろしくお願いいたします。

  • Filemaker 最新フィールド値の取得

    Filemaker Pro12で、AテーブルのフォームにBテーブルのポータルを作っています。 Bテーブルの「使用期限までの日数」というフィールドの最新値だけポータル内ではなく、Aテーブルのフォームにオブジェクトとして表示したいのですが、どうしても最古のフィールド値しか表示できません。 どうすれば、最新値が表示されるでしょうか。 どなたか教えてください。 Aテーブル 製品ID 製品名 発注先 Bテーブル 製品ID 使用期限 発注日 納品日 使用期限までの日数(今日から使用期限までの日数を計算式で数値として表示) AテーブルとBテーブルは製品IDでリレーションを組んでいます。