2017-06-13 4 views
0

リンクテーブルを持つAccess 2016データベースがあります。 Azure SQLデータベースにリンクされています。 Accessクエリにテーブルを含めると、NULLの日付は1/1/1800として表示されます。私がAccessでテーブルを開いたばかりの場合、nullの日付は空白です。ここでは、クエリは次のとおりです。Microsoft Access 2016クエリは、リンクされたテーブル内のNULL日付に対して1/1/1800を返します。

SELECT dbo_WTSI_Jobs.Id, dbo_WTSI_Jobs.JobNo, dbo_WTSI_Jobs.CreatedDate, dbo_WTSI_Jobs.CompletedDate 
FROM dbo_WTSI_Jobs 
WHERE (((dbo_WTSI_Jobs.CreatedDate)>#1/1/2017#)); 

それがnullの場合、このクエリは1800年1月1日としてdbo_WTSI_Jobs.CompletedDateを返します。 WHERE句を省略すると、nullのdbo_WTSI_Jobs.CompletedDate値は空の文字列になります。

1800年1月1日にクエリが返されないようにするにはどうすればよいですか?

+1

実際にはNULL値ではないように聞こえますが、空文字列です。空の文字列を日付に変換しようとすると、可能な限り最小限の日付が得られます。あなたは 'SWITCH(dbo_WTSI_Jobs.CompletedDate =" "、NULL)'のようなものを試すことができます。そのようなものは、その列の実際の 'NULL'値を返します。 – BJones

+0

あなたはそうです、彼らはnullではありません。この式はfalseを返します。Expr1:IsNull([dbo_WTSI_Jobs]。[CompletedDate])。私はSWITCH関数に慣れていませんが、次のように私の問題を解決しました:CompletedDateCalc:IIf([CompletedDate] =#1/1/1800#、 ""、[CompletedDate])。ちなみに、データ型はdatetimeです。あなたの助けをありがとう。 –

答えて

1

フィールドのデータ型をdatetimeに変更します。

+0

問題はまだ存在しませんか?空の文字列は '1/1/1800'に変換されますが、今回はDBにのみ格納されます。 – BJones

+0

データ型が_DateTime_の場合、デフォルトの日付または「NULL」の日付として1800-01-01の日付を受け取ることはできません。アクセスは1899-12-30です。 – Gustav

0

次の問題が解決されました:CompletedDateCalc:IIf([CompletedDate] =#1/1/1800#、 ""、[完了日])。

関連する問題