0

...したがって、私のSQLビューはnvarcharを「123456」または「JAN 11 2008 12:00AM」として返します(ビューは2つのテーブルでユニオンを実行し、日付をnvarcharにキャストします)。

条件付きの日付フォーマットを適用しようとしています。つまり、「タイプ」列を次のようにチェックして日付をフォーマットしたいです。

=IIf(Fields!Type.Value = "COS", Fields!CosNoOrDateToContractor.Value, FormatDateTime  (Fields!CosNoOrDateToContractor.Value, vbShortDate))

基本的に、タイプが「COS」の場合はデータをそのまま返し、それ以外の場合は日付にフォーマットします。

COS の場合にレポートをプレビューすると、テキスト ボックスに #Error が表示されます (文字列 "123456" から型 'Date' への変換は有効ではありません。

それ以外の場合は、データが日付としてフォーマットされます。

これは理にかなっていますか?

構文に何か問題がありますか、それとも私がしようとしていることは不可能ですか?

代替テキスト

4

2 に答える 2

0

私の推測では、テキストボックスの「フォーマット」フィールドに何らかのフォーマットがあると思います

それ以外の場合は、日付を期待するときに数字があります。

IsDate() チェックも追加して、日付以外を削除してみてください

=IIf(Fields!Type.Value <> "COS" AND IsDate(Fields!CosNoOrDateToContractor.Value)
     , FormatDateTime (Fields!CosNoOrDateToContractor.Value, vbShortDate)
      , Fields!CosNoOrDateToContractor.Value)

編集:

DataSet では、どのデータ型を教えてください。

于 2010-11-29T15:57:48.877 に答える
0

代わりにビューを変更したので、日付を nvarchar にキャストしません。

于 2010-11-30T09:35:17.533 に答える