- ベストアンサー
ファイルメーカーのフィールドの計算式について
いつもお世話になっております。 ファイルメーカーのフィールドに関して ご教授いただけないでしょうか。 一つのテーブルに日付,業者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行を選択する件、 再度行なったところ仰るとおり成功しました。 有難うございました。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
タイムスタンプのフォーマットが統一されていること(つまり、年月日の区切りが「/」、年月日と時刻の区切りが「 」、かつ時刻の区切りが「:」になっていること)を前提とすれば、 Substitute ( GetAsDate ( Left ( タイムスタンプ ; Position ( タイムスタンプ ; " " ; 1 ; 1 ) ) ) ; "/" ; "" ) & Substitute ( Substitute ( Right ( タイムスタンプ ; 8 ) ; " " ; "0" ) ; ":" ; "" ) & 業者ID でよいかと存じます(計算結果はテキスト)。フォーマットが統一されていない場合には、統一するか、それらの区切りすべての置換を行います。 (「0」の置換は、09:00:00が、9:00:00となる場合等を想定しています)
その他の回答 (1)
- otoutann
- ベストアンサー率26% (248/933)
計算結果はテキストで 業務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版です。
補足
otoutann様: 早速のご回答有難うございます。 こちらの環境を記載するのを すっかり忘れておりました。失礼致しました。 Ver.8で、Windows版となっております。 それで、 ご教授いただいたとおりに入れてみたのですが、 #8805に関して「指定されたフィールドがありません」と表示されてしまいます。 #8805とは何を表しているのでしょうか。 お手数ですが引き続きお願い致します。
お礼
optimizer様: ご回答有難うございました。 まさにこれです!!成功しました。 大変助かりました。有難うございました。