• 締切済み

ファイルメーカー 実在の日付チェック

西暦年、月、日の3つの入力用フィールド(数字)と日付フィールド「F」があります。 入力されたフィールドから、「F」はDate ( 月 ; 日 ; 西暦年 )で変換されます。 例えば 2007,02,28と入力した時はいいのですが、2007,02,30とかを入力しても正しく(?)3月2日と変換してくれます。 これを正しく(?)変換せずに、エラーを発生させるとか、その日が実際に存在するかどうかチェックする方法は、どうしたらよろしいでしょうか?

みんなの回答

  • aqula
  • ベストアンサー率60% (70/115)
回答No.1

「F」の計算式を 年 & "/" & 月 & "/" & 日(計算結果:日付) とすれば、無効な日付は「?」が表示されます。

situmonnsya
質問者

お礼

はい「?」は出るだけで、スプリクトはそのまま進むので・・・ でも、ひと風呂浴びたらいい考えがわいてきました。 自己解決しそうです。 ありがとうございます。

situmonnsya
質問者

補足

自己解決しました。 フィールド設定[チェック1;Month(月;1;年) フィールド設定[チェック2;Month(月;日;年) If[チェック1<>チェック2]   #実在しない EndIf ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ファイルメーカーPRO 5を使ってます 日付を入力してDayNameJ

    ファイルメーカーPRO 5を使ってます。日付を入力してDayNameJ(日付)で曜日を表示させてます。 所が、日付を変更しても曜日が変わりませんどうしたら変更出来ますか? 後、毎月15日を堺に支払月を変更したいと思って関数を使って計算式を入れているのですが計算が出来ません。 If(Day(日付) <= 15,Date(Year(日付),Month(日付),15),Date(Year(日付),Month(日付)+1,15))と入れてます。 たとえば、日付に2009/06/17と入力すると 支払月が0182/05/07となってしまいます。 どうしてでしょうか? 日付、支払月は日付フィールドになってます。 もう一つすみません。 日付を年、月、日のそれぞれのフィールドに分割したくてそれぞれに  年、Year(日付) 月、month(日付) 日、day(日付)と計算式をいれたのですが、日付フィールドにして、日付書式のカスタムでそれぞれ年、月、日を表示するようにしたら 年、0006 月、01 日、17になっていまいます。日付フィールドをやめて数字フィールドにすると年、2009 月、06 日、17とちゃんと出てきます。 日付フィールドではダメって事でしょうか? 計算式をいれている所は日付をかえても計算し直してくれません。どうしたら良いのでしょうか? いろんな質問をしてすみませんが宜しくお願いします。

  • ファイルメーカ 毎月の日付

    FMv7です。 フィールドA-1-----フィールドA-2-----フィールドB-1-----フィールドB-2-----フィールドC 2007年     -----1月      -----2010年     -----5月      -----15日 全て数字のグローバル 上記のフィールドを参照して、2007年1月15日から2010年5月15日まで毎月C日のレコードをスクリプトで新規作成しようとしています。 フィールドD *グローバルでない* ・2007/1/15 ・2007/2/15   ~~ ・2010/5/15 フィールドCが28日までだったら問題はありません。 が、Cが31日になると ・2007/1/31 ・2007/2/31(Dが日付だと2007/3/3)  ~~ となってしまいます。 これを ・2007/1/31 ・2007/2/28(または29) ・2007/3/31 ・2007/4/30  ~~ と、繰上げた日にするいい方法はありませんか? QNo.1560175(ファイルメーカー 一ヵ月後の日付をだすには?)に近い回答があったのですが、2007/2/28と入力すると2007/3/31になってしまうので。このときは2007/3/28がほしいのですが。 たぶんこの計算式の頭に28日以下だったらそのまま、という式を追加させたらいいのでしょうが、記述がわかりません。

  • ファイルメーカー 日付関数

    以前下記の内容の質問をし回答を頂いて計算できるようになったのですが この計算式(支払日(計算結果:日付)= Date(Month(請求日 - 締日) + 支払い月 + If(締日 = 0,0,1) + If(支払日付 = 0,1,0),支払日付+1,Year(請求日 - 締日))-1)に手を加えて 同一支払いフィールドに請求日から7日目を計算して支払日フィールドに日にちが入るようにする計算は出来るでしょうか? ご教示宜しくお願い致します。 <以前の質問文> ファイルメーカーVer5.0で顧客管理台帳と営業台帳を作りました。 顧客台帳に各顧客の支払い条件が入っています。 例 締め日フィールド:5日、10日、15日、25日、末 支払い月フィールド:当月、翌月、翌々月、起算90日 支払日フィールド:5日、10日、15日、25日、末 (ポップアップリストで各顧客毎に値一覧より指定) 営業台帳には、請求書発行日フィールドと支払日フィールドがあります。 営業台帳の請求書発行日フィールドに日付(不特定日)を入れることで 締め日、支払い月、支払日を換算した日にちを支払日フィールドに 入れることは出来ないでしょうか。 ご教示お願い致します。 <以前回答頂いた内容> 請求日(日付) 締日(数字) … 0は末日 支払月(数字) … 0は当月 支払日付(数字) … 0は末日 支払日(計算結果:日付)= Date(Month(請求日 - 締日) + 支払い月 + If(締日 = 0,0,1) + If(支払日付 = 0,1,0),支払日付+1,Year(請求日 - 締日))-1

  • ファイルメーカーの日付計算について

    ファイルメーカーPro5.0を使っている初心者です。 どうしても分からない事があります。 例えば2004/9/1と1のフィールドに日付を入力する事により2のフィールドに「H16.10.1」3のフィールドに「H16.11.1」・・・10のフィールドに「H17.7.1」と日付はそのままで月のみを1ヶ月プラスさせて自動表示させたいのですが、どうしてもできません。 計算値自動入力で、「フィールド1 + 31」というように計算してみたのですが、当然31日の月もあれば30日の月もあるので月だけでなく日付もずれてしまいます。 これを月のみを1ヶ月プラスする為の方法を知りたいです。 急ぎで作らなくはならないものがあり困っています。 どうかよろしくお願い致します。

  • 日付の入力チェック

    お疲れ様です。 c++の日付の入力型のチェックを行いたいです。 具体的には文字が入力されて その型が(yyyy/mm/dd)の型で存在するかをチェックします。 数字だけの入力なら標準クラスにありそうなのですが「/」を含みチェックは行えないのでしょうか? また標準クラスにあるのならば「try~catch」を使用してエラーを受け取れる方法があったら教えてください。 お願いします。

  • 日付データのエラーチェックに関して

    最近Javaを習い始め、Eclipseを使ってサーブレット/JSPを学習している者です。使っているデータベースはOracle9iです。OSはWindowsXPです。 現在、学習しているのはJSPで表示したブラウザのフォームからデータを入力して、データベースにそのデータを登録、更新などを行う作業です。 質問は入力されたデータのエラーチェックについてなのですが、データベースに日付を西暦で2009/03/05とDATE型で登録していて、その日付をブラウザから登録、更新する際に「日付は半角で西暦/月/日と入力してください」と指定して、それ以外の入力がされた場合はエラー画面を表示したいのですが、フォームから送られてくるデータはString型でそれをSimpleDateFormatメソッドを使ってDate型に変換してtryで例外処理をしてエラー画面に画面遷移すればいいと思うのですが、サーブレット内でその処理を実行しようとするとエラーになってしまいます。 どのようにソースを書けばいいのでしょうか? JSPのフォームのソース(一部) <input type="text" name="day"> サーブレットのソース(一部) public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("Windows-31J"); String day = request.getParameter("day"); try { ここから先が分かりません。

    • ベストアンサー
    • Java
  • 日付チェックの考え方

    連続投稿失礼します。 私が今悩んでいるのは、初心者ならば誰でも最初はひっかかるであろう日付チェックです。 入社年月日と生年月日をチェックしたいのですが、実装方法がわからないのは別として(調べればわかるかなぁ、なんて)、それ以前のチェックの範囲がよくわかりません。 入社年月日ならば、会社の創立日から、今日の日付までの値が有効範囲、でよいと思うのですが、生年月日となるとかなり疑問です。 有効範囲が下が西暦1年から上は西暦2003年というわけにもいきませんよね? 実際そういう値を入力しても正常に動くことは動きますけど、それによって算出した年齢が常識の範囲外になってしまいます。 そこで、今現在で妥当と思える年月を指定しても、時はどんどん流れていくので、そのたびにプログラムを修正しなくちゃいけないのか、って話になります。 なにかアドバイスをいただけると助かります。 宜しくお願い致します<(_ _)>

    • ベストアンサー
    • Java
  • Access format関数を使わず日付を変換

    Access2016で、あるテーブルからクエリを作成して日付フィールド(西暦/月/日)を(西暦/年)のようにさせたいのですが、以下のようにformat関数を入力して実行すると完了するまでに非常に長い時間がかかってしまい困っています。 別の方法で処理をしたいのですが、ご存知の方いらっしゃるでしょうか。 SQLとかは使わず、初心者でも後から解読・編集できるような方法があればありがたいです。 元となるテーブルのデータ型は都合上変えられません。 フィールド名 日付 データ型 日付/時刻型 データサンプル 2024/2/27 クエリでやりたいこと 元のテーブルのデータを日別ではなく月別で集計したいため、 日付データを 年/月/日 ではなく 年/月 に変換したい ※同月のデータを同一の値に変換できさえすれば合計できるので、表示される形式は「2024/2」でも「2024年2月」でも「202402」でも構いません。 今回入力した式 「年月:format([日付],"yyyy/mm")」 以上、よろしくお願いします。

  • Excel で数字が日付に変更されてしまう

    Excel 2003を使っている初心者です。 日付と数字を入力するということをやっていますが、ある列に日付を入力し、その後入力したとき自動的にただの数字が一列おきに日付に変わってしまいます。  具体的には、D列に日付を入力(6/13のように)しF列にもうひとつ日付入力、その後はG,H,I,J...列に数字を入力したいのですが、なぜかH,J列には55のようにただの数字をいれても2月24日などと勝手に変換されてしまいます。 6月13日 6月27日 130 55 135 55のように入力したいのに 6月13日 6月27日 130 2月24日 135 2月24日となってしまいます。 特に日付に関する設定をした記憶がないのですが、どのようにすると日付に変換されないようにできますでしょうか? (分かりにくい説明で申し訳ありません)

  • システム日付が西暦なのかチェックしたい(VB)

    VBで、 システム日付が西暦なのかどうかチェックしたいです。 西暦かどうかを確認する方法はありますでしょうか? 考えた方法としては、 DATE関数でシステム日付を取得し、 その値がFormat(Date, "YYYYMMDD")と一致するかどうかで 西暦かどうかを判断する処理を考えましたが、 果たしてこれが正しいといえるのか不安です・・・。