从SQL Server链接表时,使用DCount和Access VBA

时间:2012-09-11 21:52:46

标签: sql-server vba ms-access-2007

我在连接到SQL 2005表的Access 2007数据库中遇到DCount问题。

如果表“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 & "#"))

2 个答案:

答案 0 :(得分:0)

我发现有一些摆弄它的作品:

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

对我来说,困难在于MS数据类型在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'}

答案 1 :(得分:0)

我创造了一个非优雅的解决方案。我将相关数据从SQL表中提取到本地访问表中,然后在本地表上执行了DCount。本来不应该这样做,但我需要把这个问题抛在脑后。非常感谢大家的投入。