2015-03-01 3 views
1

Я пытаюсь открыть отчет, построенный на запросе, на основе даты на основе элемента управления формы, в которой создается событие открытого отчета. При анализе кода ясно, что дата отчета (Effective_date) по какой-то причине не распознается. Возможно, это формат даты?Фильтрация отчета по дате

Private Sub Comando145_Click() 

DoCmd.OpenReport "rpt_ValueAddAndWastes01", acViewPreview, , "[Effective_date] = " & LastUpdateDate, acIcon 

End Sub 

ответ

1

Смотрите, если это делает разницу:

Private Sub Comando145_Click() 

DoCmd.OpenReport "rpt_ValueAddAndWastes01", acViewPreview, , "[Effective_date] = #" & LastUpdateDate & "#", acIcon 

End Sub 

ОК, теперь, когда мы знаем, что работает. Еще одна вещь :) Вы можете рассмотреть возможность тестирования значения перед его передачей. (Для того, чтобы поймать нулевые значения и любые другие странности В этом случае простой способ будет просто проверить, как это:.

Private Sub Comando145_Click() 

Dim dtVal As Date 
If Not IsNull(LastUpdateDate) Then 
    If IsDate(LastUpdateDate) Then 
     dtVal = CDate(LastUpdateDate) 
     DoCmd.OpenReport "rpt_ValueAddAndWastes01", acViewPreview, , "[Effective_date] = #" & dtVal & "#", acIcon 
    End If 
End If  

End Sub 

Редактировать Причина заключается в том, что так же, как строка должна быть в кавычках («Я - строка») Дата должна быть в Hash Marks (# 01/01/2015 #). Если типом поля является Date или если вы хотите, чтобы значение обрабатывалось как дата, тогда вам нужно будет # # :)

+0

Это, безусловно, делает. Большое спасибо. Любые слова мудрости о том, почему эта проблема требует этого решения? –

Смежные вопросы