2017-05-23 14 views
0

私はこのリンクを見たabout the value returned by DMAX in Access 2010 しかし、最大値を見つけるために私のVBAコードでテストすると、nullNumを0に設定するためにスキップされているようです。アクセス2010 DMAX戻り値

DoCmd.SetWarnings False 
If DMax("[Eff Date]", "400_CF_BREAK_LOG") <> "" Or Not IsNull(DMax("[Eff Date]", "400_CF_BREAK_LOG")) Or DMax("[Eff Date]", "400_CF_BREAK_LOG") <> 0 Then 
    oldDate = DMax("[Eff Date]", "400_CF_BREAK_LOG") 
Else: 
    nullNum = 0 
End If 
If DMin("[Eff Date]", "203_Differences") > oldDate Or nullNum = 0 Then 
     Run Query; 
End If 
    DoCmd.SetWarnings True 

私の問題は、A)nullNumどちらかが常に0に設定されていることをOR 2)のDminと私のロジックが間違っている(しかし、私はそれを説明しましょうということで、最小の場合、私は、クエリを実行しています新しい日付は古い日付のうち最も古い日付よりも大きい)。私の論理は間違っているとは思わない。

+0

はここhttps://stackoverflow.com/questions/21498398/dlookup-or-dmax-to-find-value回避策を見つけました。まだ答えに興味があります – FamousFrik

答えて

0

バリアントデータ型には、Null値を格納できます。 DMax値を取得して、Null値を調べてみてください。

DoCmd.SetWarnings False 

Dim maxDate As Variant 
    maxDate = DMax("[Eff Date]", "400_CF_BREAK_LOG") 

If Not IsNull(maxDate) Then 
    If DMin("[Eff Date]", "203_Differences") > maxDate Then 
    'Run Query 
    End If 
End If 

DoCmd.SetWarnings True 
+0

ありがとうございます。チャームのように働いた!とても有難い。 – FamousFrik