2016-07-06 52 views
2

我有一个一对多的关系2台用于DCOUNT绑定文本框:的MS Access:与日期参数

人 - 应用

每当一个人符合标准,新纪录是在应用程序中创建的,并且今天的日期已添加到字段App_OutAwardDate

我想添加一些类似于未绑定的文本框到人形式,将显示,在选择人的记录时,在过去28天内已填充App_OutAwardDate的次数,有效计算应用程序的数量最后4周。

通过这种方式,工人在进步之前会受到警告,因为他们目前可能没有资格获得进一步的奖励。

我一直在使用以下,但它只是返回 '0':

=DCount("App_PerID","Application","App_OutAwardDate" Between Date() And Date()-28) 

Person表

Per_ID = primary key 

申请表

App_ID = Primary key 

App_PerID = Foreign key (for Person) 

App_OutAwardDate 

我有近零实验计算字段,所以任何帮助感激地收到。

回答

1

DCount第三参数必须是WHERE有效的SQL字符串。

对于Between,日期必须按照正确的顺序(早期和晚期之间)。

只需检查的日期,你可以使用

=DCount("App_PerID","Application","App_OutAwardDate Between Date()-28 And Date()") 

还需要检查当前的人,你需要的是这样的:

=DCount("App_PerID","Application", 
    "(App_OutAwardDate Between Date()-28 And Date()) AND 
    App_PerID = " & [PerID]) 

[PerID]是指包含表单控件当前人员ID。它需要被连接,因为如果它在字符串中,DCount不能解决这个问题。

0

谢谢你花时间看看。我尝试了这个建议,但它返回了#Name ?.与此同时,我阻止了一名顾问,他回答:

= DCount(“*”,“Application”,“[App_PerID] = [Forms]![Frm_Person]![Per_ID]和[App_OutAwardDate] DateAdd (“”d“”,-28,Date())和Date()“)

再次感谢,我希望如果帮助别人也。