DateAdd功能 - 添加一年时出错? [英] DateAdd Function - error when adding one year?

查看:82
本文介绍了DateAdd功能 - 添加一年时出错?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用日期添加功能,出于某种原因,当我尝试将一年添加到某个日期时我收到错误但是当我尝试添加超过一年时没有错误。任何人都可以弄明白为什么会这样吗?


示例:DateAdd(" yyyy",1,recSet7.Fields(" DateofContract"))

I''m using the date add function and for some reason I''m getting an error when I try to add a single year to a date but no error when I try to add more than a single year. can anyone figure out why this may be?

example: DateAdd("yyyy", 1, recSet7.Fields("DateofContract"))

推荐答案

你好Kosmos


这对我有用
Hi Kosmos

this works for me
展开 | 选择 | 换行 | 行号


嗯......代码检查合同的续约日期是否大于或等于当前日期......如果是,它将续订日期设置为续订日期加上年数合同将续签。该字段称为TermOfContractInYears。每当此字段等于1时,我遇到一个问题。以下是相关代码:


[PHP] recSet7.Open" tblContracts",con7,adOpenKeyset,adLockOptimistic

recSet7.MoveFirst

Do until recSet7.EOF

If IsNull(recSet7.Fields(" RenewalDate")))和recSet7.Fields( " TermOfContractInYears")<> 0和recSet7.Fields(" ContinuousContract")= True然后

Do到recSet7.Fields(" RenewalDate")>日期

如果recSet7.Fields(" TermOfContractInYears")= 1那么

recSet7.Fields(" RenewalDate")= DateAdd(" yyyy",1,recSet7 .Fields(" DateofContract"))

recSet7.Fields(" RenewalDate")= DateAdd(" d",( - 1),recSet7.Fields(" RenewalDate"))

Else

recSet7.Fields(" RenewalDate")= DateAdd(" yyyy",recSet7.Fields(" TermOfContractInYears")),recSet7.Fields(" DateofContract" ;))

recSet7.Fields(" RenewalDate")= DateAdd(" d",( - 1),recSet7.Fields(" RenewalDate"))

结束如果

循环

ElseIf Not IsNull(recSet7.Fields(" RenewalDate"))和recSet7.Fields(" TermOfContractInYears")<> 0和recSet7.Fields(" ContinuousContract")= True然后

如果recSet7.Fields(" RenewalDate")< = Date那么

Me.txtReference = recSet7 .Fields(" DatabaseReferenceNumber")

DoCmd.OpenQuery(" UpdateAddedToOutlook")

Do until recSet7.Fields(" RenewalDate")>日期

如果recSet7.Fields(" TermOfContractInYears")= 1那么

recSet7.Fields(" RenewalDate")= DateAdd(" yyyy",1,recSet7 .Fields(" DateofContract"))

recSet7.Fields(" RenewalDate")= DateAdd(" d",( - 1),recSet7.Fields(" RenewalDate"))

Else

recSet7.Fields(" RenewalDate")= DateAdd(" yyyy",recSet7.Fields(" TermOfContractInYears")),recSet7.Fields(" DateofContract" ;))

recSet7.Fields(" RenewalDate")= DateAdd(" d",( - 1),recSet7.Fields(" RenewalDate"))

结束如果

循环

结束如果

结束如果

recSet7.MoveNext

循环

recSet7.Close [/ PHP]


每当TermOfContractInYears大于1时,它会继续使用另一个选项,这就是为什么我将问题缩小到数字1的原因但可能是我的代码导致了问题?
hmmm....well the code checks to see if the renewal date of a contract is older than or equal to the current date...if so it sets renewal date to the renewal date plus the number of years the contract will renew for. This field is called "TermOfContractInYears" I am running into a problem here whenever this field is equal to 1. The following is the pertinent code:

[PHP] recSet7.Open "tblContracts", con7, adOpenKeyset, adLockOptimistic
recSet7.MoveFirst
Do Until recSet7.EOF
If IsNull(recSet7.Fields("RenewalDate")) And recSet7.Fields("TermOfContractInYears") <> 0 And recSet7.Fields("ContinuousContract") = True Then
Do Until recSet7.Fields("RenewalDate") > Date
If recSet7.Fields("TermOfContractInYears") = 1 Then
recSet7.Fields("RenewalDate") = DateAdd("yyyy", 1, recSet7.Fields("DateofContract"))
recSet7.Fields("RenewalDate") = DateAdd("d", (-1), recSet7.Fields("RenewalDate"))
Else
recSet7.Fields("RenewalDate") = DateAdd("yyyy", recSet7.Fields("TermOfContractInYears"), recSet7.Fields("DateofContract"))
recSet7.Fields("RenewalDate") = DateAdd("d", (-1), recSet7.Fields("RenewalDate"))
End If
Loop
ElseIf Not IsNull(recSet7.Fields("RenewalDate")) And recSet7.Fields("TermOfContractInYears") <> 0 And recSet7.Fields("ContinuousContract") = True Then
If recSet7.Fields("RenewalDate") <= Date Then
Me.txtReference = recSet7.Fields("DatabaseReferenceNumber")
DoCmd.OpenQuery ("UpdateAddedToOutlook")
Do Until recSet7.Fields("RenewalDate") > Date
If recSet7.Fields("TermOfContractInYears") = 1 Then
recSet7.Fields("RenewalDate") = DateAdd("yyyy", 1, recSet7.Fields("DateofContract"))
recSet7.Fields("RenewalDate") = DateAdd("d", (-1), recSet7.Fields("RenewalDate"))
Else
recSet7.Fields("RenewalDate") = DateAdd("yyyy", recSet7.Fields("TermOfContractInYears"), recSet7.Fields("DateofContract"))
recSet7.Fields("RenewalDate") = DateAdd("d", (-1), recSet7.Fields("RenewalDate"))
End If
Loop
End If
End If
recSet7.MoveNext
Loop
recSet7.Close[/PHP]

Whenever TermOfContractInYears is greater than 1, it goes on to the other option and it works which is why I have narrowed down the problem to the number 1 but perhaps it is my code that is causing the problem?


Kosmos


运行时返回的日期
Kosmos

What date is returned when you run
展开 | 选择 | Wrap | 行号


这篇关于DateAdd功能 - 添加一年时出错?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆