2012-09-11 278 views
0

我在連接到SQL 2005表的Access 2007數據庫中的DCount出現問題。從SQL Server連接表時使用DCount與Access VBA

下面的代碼工作正常,如果表中,「tblPART_CandD_MASTER」,是當地

DCount("*", "tblPART_CandD_MASTER", ("[InvalidContract] =0 and [MissingContract] =0 and DateTimeSubmittedtoDB = #" & Me.txtDateTime & "#")) 

我提出我的所有本地表到一個SQL 2005服務器。現在,上面的代碼每次都返回零。

如果我在以下幾個方面打散代碼它也適用:

DCount("*", "tblPART_CandD_MASTER", ("[InvalidContract] =0 and [MissingContract] =0")) 

DCount("*", "tblPART_CandD_MASTER", ("DateTimeSubmittedtoDB = #" & Me.txtDateTime & "#")) 

由於代碼工作上面兩行,我很沮喪,爲什麼這不會工作:

DCount("*", "tblPART_CandD_MASTER", ("[InvalidContract] =0 and [MissingContract] =0 and DateTimeSubmittedtoDB = #" & Me.txtDateTime & "#")) 
+0

當你說不起作用時,你的意思是計數錯了嗎?你確定日期格式沒有問題嗎?格式化爲年,月,日格式幾乎總是最好的,以避免含糊不清。 – Fionnuala

+0

計數返回零。我的第一個inclanation是日期格式,但是如果日期格式出現問題,代碼:DCount(「*」,「tblPART_CandD_MASTER」,(「DateTimeSubmittedtoDB =#」&Me.txtDateTime&「#」))應該返回零以及。但是,這工作並返回正確的值。它驅使我瘋了爲什麼上面的代碼工作,但這個代碼不DCount(「*」,「tblPART_CandD_MASTER」,(「[InvalidContract] = 0和[MissingContract] = 0和DateTimeSubmittedtoDB =#」&Me.txtDateTime&「#」 )) – indianajns

+0

我使用Access Data Projects並利用Dcount _ALL_的時間。我不明白你的困難是什麼。 –

回答

0

我發現一些擺弄這個工程:

=DCount("*","dbo_tblPART_CandD_MASTER",("InvalidContract=false And MissingContract=false And DateTimeSubmittedtoDB=#" & [DateTimeSubmittedtoDB] & "#")) 

對我來說,困難是位數據類型whic h在MS Access中顯示爲False,即使SQL Server中的值爲Null也是如此。有辦法解決這個問題。我通過在SQL服務器上運行發現問題:

select count(*) 
from tblPART_CandD_MASTER 
where MissingContract=0 
and InvalidContract=0 
and DateTimeSubmittedtoDB={d '2012-09-21'} 
+0

感謝Remou。我真的很感謝你的迴應。不幸的是,這仍然沒有工作,返回零值。我根據您的建議進行了更改: DCount(「*」,「tblPART_CandD_MASTER」,(「[InvalidContract] = false和[MissingContract] = false和DateTimeSubmittedtoDB =#」&[Me.txtDateTime]&「#」)) 對錶中的數據,這應該返回3,但只返回0。 – indianajns

+0

在SQL Server中運行查詢時會發生什麼?你有正確的結果嗎? – Fionnuala

+0

我想知道你是否有空值,而不是假(0)。 – Fionnuala

0

我創建了一個非優雅的解決方案。我從SQL表中提取相關數據到本地訪問表中,然後在本地表上執行了DCount。寧可不這樣做,但我需要把這個問題放在我身後。非常感謝大家的意見。