2016-06-19 20 views
0

誕生日をフィールドDateValueOfに保存するテーブルがあります。ユーザーが任意の日付を入力できるクエリを作成しています。このクエリは、その日の誕生日を持つ顧客を返します。日付 - アクセスの条件式のデータ型の不一致

このため、今年のすべての年をDateValueOfに変換しようとしています。

eg > #13-10-1996# to #13-10-2016# 
eg > #13-10-2001# to #13-10-2016# 

私は、日付ピッカーから日付を選択し、以下のクエリを実行するようにユーザーに依頼します。

SELECT CustomerID 
WHERE FormatDateTime(DateValue(DateSerial(Year(Date()),Month([DateValueOf]),Day([DateValueOf]))),2) >= #13-10-2016# 

しかし、このSQL文はエラーdata type mismatch in criteria expression

を生産する私のミスをハイライトしてください。前もって感謝します。私は今日誰の誕生日を得るために他の方法にも開いています。

答えて

2

機能Date()によって返され、今日の日付を関連性がありません。
年齢を指定しない限り、Year()も関連性がありません。

SELECT CustomerID 
FROM MyTableName 
WHERE Month(myDatePicker) = Month([DateValueOf]) AND Day([DateValueOf]) = Day([myDatePicker]) 

あなたはこの誕生日で、顧客の年齢をしたい場合は、SELECT句に計算を追加することができます。

SELECT CustomerID, Year(myDatePicker) - Year(DateValueOf) As CustomerAge 
FROM MyTableName 
WHERE Month(myDatePicker) = Month([DateValueOf]) AND Day([DateValueOf]) Day([myDatePicker]) 
+0

ニースの提案。私は私のプロジェクトであなたのソリューションを実装しました。ありがとう –

1

ちょうど日付の比較を使用して、日付の書式を心配しないでください:

(それを呼び出す: myDatePicker)日付ピッカーコントロールから日付を受け取ると仮定
SELECT CustomerID 
WHERE DateSerial(Year(Date()),Month([DateValueOf]),Day([DateValueOf])) 
    >= #13-10-2016# 
+0

私はあなたの提案を試してみました、しかし、まだエラーを取得。多くの研究と試行錯誤の末、「DateValueOf」フィールドが空であることがあるため、「条件式にデータ型の不一致があります」というメッセージが表示されるようになりました。これをどうすれば管理できますか? –

関連する問題