説明
IsDate は、指定された文字列または数値を日付として有効な値に変換できる場合は True を返し、変換できない場合は False を返します。
引数
文字列は、日付値に変換できるかどうかをテストする文字列型の値または式。さまざまな形式で指定できます。
数値は、日付値に変換できるかどうかをテストする数値または数値式。正数、負数、小数のいずれも指定できます。指定された値は、1899 年 12 月 30 日からの日数として処理されます。
アクション
IsDate は、指定された文字列または数値を日付として有効な値に変換できる場合は True を返し、変換できない場合は False を返します。日付として有効な値とは、100 年 1 月 1 日から 9999 年 12 月 30 日までの範囲に含まれる値です。
用途
「CDate」 または
「DateValue」 関数を使って文字列を日付に変換する場合は、最初に IsDate 関数を使用して、変換が可能かどうかをチェックします。次がその例です。
例
IsDate ("Jan 1, 1999")True を返します。
IsDate (100)
この式も True を返します。数値 100 は、1899 年 12 月 30 日から 100 日目、つまり 1900 年 4 月 9 日に変換されるからです。
IsDate ("Feb 29, 1999")False を返します。1999 年はうるう年ではないので、この文字列は日付に変換できません。
受注レポートが受注日を基準に月ごとにグループ化されているとします。次の式は、GroupName 文字列フィールドから日付値を取得して返します。レポートが上位 N レポートの場合は、GroupName フィールドの値が“その他”になることがあります。この値は日付に変換できないので、CDate 関数を呼び出してエラーが発生するのを避けるために、IsDate が使用されています。
Local StringVar s := GroupName ({Orders.Order Date}, "monthly");
If IsDate(s) Then
CDate(s)
Else
CDate(0,0,0)GroupName フィールドの値が“May - 1998”の場合は、1998 年 5 月 1 日の日付値を返します。GroupName フィールドの値が“その他”の場合は、NULL の日付値を返します。これは出力されません。