我正在请求一些指导来解决我在尝试编辑数据库中的“AfterUpdate”事件时遇到的问题。它似乎在我的本地机器上正常工作,但当我尝试在网络数据库中实现它时,它无法正常工作(偶尔在其中一个字段中放入一个随机日期,不会删除我提供新的日期ID等。)
以下是我的VBA代码:
Private Sub provider_surveyID_AfterUpdate()
provider_survey_dueDate = DateAdd("ww", 2, DLookup("completed_on",
"qry_ProviderSurveyInfo", "provider_surveyID=" & provider_surveyID))
provider_survey_reminder2weeks = DateAdd("ww", 4, DLookup("completed_on",
"qry_ProviderSurveyInfo", "provider_surveyID=" & provider_surveyID))
provider_survey_reminder4weeks = DateAdd("ww", 6, DLookup("completed_on",
"qry_ProviderSurveyInfo", "provider_surveyID=" & provider_surveyID))
End Sub
查询正确,将调查ID加入相应的参与者,以确定DateAdd函数中使用的原始“completed_on”日期。
你能看到为什么它不能像在本地那样工作的原因 - 在输入当前未使用的ID时删除日期?另外,认为在这个实例中使用Nz(provider_surveyID,0)是明智的吗?我还没有实现它,因为我想让它正常工作,因为它在我的本地没有任何问题 - 我输入ID,它填充;我输入20(尚未使用),它使所有日期再次为空。
答案 0 :(得分:1)
Dlookups使用起来既慢又棘手,在未输入Criteria时也会返回随机值。我不确定你的表格是如何组合在一起的(我假设它是一个表格),这可能是一个部分答案:
Private Sub provider_surveyID_AfterUpdate()
Dim dtComplete as Date
If IsNull(provider_serveyID) then
provider_survey_dueDate=""
provider_survey_reminder2weeks=""
provider_survey_reminder4weeks=""
Else
dtComplete = DLookup("completed_on","qry_ProviderSurveyInfo", "provider_surveyID=" & provider_surveyID)
provider_survey_dueDate=DateAdd("ww",2,dtComplete)
provider_survey_reminder2weeks=DateAdd("ww",4,dtComplete)
provider_survey_reminder4weeks=DateAdd("ww",6,dtComplete)
End if
End sub