Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 在单个子MS访问内的两段代码中使用相同的变量_Ms Access - Fatal编程技术网

Ms access 在单个子MS访问内的两段代码中使用相同的变量

Ms access 在单个子MS访问内的两段代码中使用相同的变量,ms-access,Ms Access,我正在制作一个允许用户处理合同升级的访问表单,在表单中我有一个按钮,可以更改每个合同的3个日期、连接日期、结束日期和最早升级日期 更改结束日期时,我使用以下代码实际更改日期: [End Date] = DateAdd("m", Number, FirstDate) 结束日期是我要更改的日期,然后使用DateAdd添加到日期,更改日期的月份,用户输入一个数字,通常为24,然后FirstDate是当前结束日期。FirstDate在代码开头设置为变量 我想将其更改为: [End Date] = Da

我正在制作一个允许用户处理合同升级的访问表单,在表单中我有一个按钮,可以更改每个合同的3个日期、连接日期、结束日期和最早升级日期

更改结束日期时,我使用以下代码实际更改日期:

[End Date] = DateAdd("m", Number, FirstDate)
结束日期是我要更改的日期,然后使用
DateAdd
添加到日期,更改日期的月份,用户输入一个数字,通常为24,然后FirstDate是当前结束日期。FirstDate在代码开头设置为变量

我想将其更改为:

[End Date] = DateAdd("m", Number, Startdate)
它做的一切都是一样的,但是使用了一个不同的变量,这个变量在代码的前面部分被用来更改合同的开始日期,这在代码的这一部分中确实有效,但是当我再次尝试使用它时,代码崩溃了

即使我将
Startdate
更改为[dateconnected],这种情况仍然会发生

有人能帮我弄清楚为什么代码不会在第一个变量之后的代码段中第二次使用
Startdate
变量

这是代码发生的整个私有子系统,这是我想要使用的新代码:

Private Sub cmdUpgrade_Click()

Dim Startdate As String
Dim Number As String
Dim Tariff As String

Startdate = InputBox("Enter Start Date (00/00/0000):", "Inputbox")
If StrPtr(Startdate) = 0 Then
MsgBox "You pressed Cancel" 'Option 1
Else
If Startdate = "" Then
MsgBox "Input Left Empty" ' Option 2
Else
[Date Connected] = Startdate
End If
End If


Number = InputBox("Enter Contract Length + Rollover:", "Inputbox")
If StrPtr(Number) = 0 Then
MsgBox "You pressed Cancel" 'Option 1
Else
If Number = "" Then
MsgBox "Input Left Empty" ' Option 2
Else
**[End Date] = DateAdd("m", Number, Startdate)**
[Earliest Upgrade] = DateAdd("d", -180, [End Date])
End If
End If

Tariff = InputBox("Enter Tarrif", "Inputbox")
If StrPtr(Tarrif) = 0 Then
MsgBox "You pressed Cancel" 'Option 1
Else
If Tariff = "" Then
MsgBox "Input Left Empty" ' Option 2
Else
[Current Talk Plan] = Tariff
End If
End If

Forms!frmForecast.Form.Requery
DoCmd.SearchForRecord , , acFirst, "Year([Earliest Upgrade]) = Year(Date())                 
And Month([Earliest Upgrade]) = Month(Date())"
End Sub

始终将日期处理为日期,而不是字符串。此外,对于空输入,用户是否按“取消”或“确定”也无关紧要:

Dim Startdate As Date
Dim Enddate As Date
Dim TestDate As String
Dim Number As String
Dim Tariff As String

TextDate = InputBox("Enter Start Date (00/00/0000):", "Inputbox")
If TextDate = "" Then
    MsgBox "No date entered" 'Option 1
ElseIf Not IsDate(TextDate) Then
    MsgBox "Please enter a valid date" ' Option 2
Else
    Startdate = DateValue(TextDate)
    [Date Connected] = Startdate
End If

<snip>

Enddate = DateAdd("m", Number, Startdate)
[End Date] = Enddate
[Earliest Upgrade] = DateAdd("d", -180, Enddate)
Dim Startdate作为日期
Dim Enddate作为日期
Dim TestDate作为字符串
作为字符串的数字
作为字符串的模糊关税
text日期=输入框(“输入开始日期(00/00/0000):”,“输入框”)
如果TextDate=”“,则
MsgBox“未输入日期”选项1
如果不是IsDate(文本日期),则
MsgBox“请输入有效日期”选项2
其他的
Startdate=DateValue(TextDate)
[连接日期]=开始日期
如果结束
Enddate=DateAdd(“m”,数字,起始日期)
[结束日期]=结束日期
[最早升级]=DateAdd(“d”,-180,Enddate)