Ложное сообщение ввода ParameterValue - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть форма с несвязанным полем Short Date под названием StartDate и кнопкой для запуска кода VBA, как показано ниже, и я получаю «Ввод сообщения параметра» для StartDate.StockTakeDate также является полем для короткой даты.Любой совет по избавлению от сообщения будет приветствоваться.

Private Sub cmdInventory_Click()

    strMsg = "Enter StartDate as Today's date or later"

    If Me.[StartDate] < Date Then 
        MsgBox strMsg, ExitSub 
    Else
        Dim strSQL
        strSQL = " UPDATE [Inventory] " _
            & " SET [Inventory].[InStock] = [Inventory].[StockTake] " _
            & " WHERE ([Inventory].[StockTakeDate] >= Me.[StartDate]) "
        DoCmd.RunSQL strSQL

End Sub

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Объединить значение параметра (StartDate), отформатированное как строковое выражение:

strSQL = " UPDATE [Inventory] " _
    & " SET [Inventory].[InStock] = [Inventory].[StockTake] " _
    & " WHERE ([Inventory].[StockTakeDate] >= #" & Format(Me![StartDate].Value, "yyyy\/mm\/dd") & "#"
DoCmd.RunSQL strSQL
0 голосов
/ 28 февраля 2019

Вы не можете использовать Me.SomeField при использовании DoCmd.RunSQL.Вместо этого используйте Forms!SomeForm!SomeField:

Dim strSQL
strSQL = " UPDATE [Inventory] " _
         & " SET [Inventory].[InStock] = [Inventory].[StockTake] " _
         & " WHERE ([Inventory].[StockTakeDate] >= Forms!MyFormName![StartDate]) "
DoCmd.RunSQL strSQL
...