Я делаю форму доступа, которая позволит пользователю обрабатывать обновления контракта, и внутри формы у меня есть кнопка, которая меняет 3 даты для каждого контракта, дату подключения, дату окончания и самую раннюю дату обновления.
При изменении даты окончания я использую этот код для фактического изменения даты:
[End Date] = DateAdd("m", Number, FirstDate)
Дата окончания - это дата, которую я хочу изменить, затем добавление к дате с использованием DateAdd
, изменяя месяц даты с числом, которое вводит пользователь, обычно 24, затем FirstDate является текущей датой окончания.FirstDate устанавливается как переменная в начале кода.
Я хочу изменить это следующим образом:
[End Date] = DateAdd("m", Number, Startdate)
Где он делает все то же самое, но с использованием другой переменнойэто используется ранее в коде, чтобы изменить дату начала контракта, который работает в этом разделе кода, но когда я пытаюсь использовать его снова здесь, код вылетает.
Это также все еще происходит, даже когдаЯ изменяю Startdate
на [Дата подключения].
Может кто-нибудь помочь мне понять, почему код не будет использовать переменную 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