0

我请求一些指导来解决我在尝试编辑数据库中的“更新后”事件时遇到的这个问题。它似乎在我的本地机器上工作正常,但是当我尝试在网络数据库中实现它时它不能正常工作(偶尔会在其中一个字段中输入随机日期,当我提供新的日期时不会删除日期身份证等)

这是我拥有的 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(尚未使用),它使所有日期再次为空。

4

1 回答 1

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
于 2012-11-27T16:56:34.027 回答