Я работаю над формой, которая фильтрует данные запроса по дате рождения.Должно быть просто.Сначала я собирался сделать это как отчет, но решил, что форма будет лучше.В отчете мой код фильтра работает нормально;он проверяет значения из несвязанных полей в форме выбора и фильтрует соответственно.Примерно так:
Private Sub Report_Load()
Dim start_dob As String
Dim end_dob As String
If CurrentProject.AllForms("frm_Birth_range_selector").IsLoaded = True Then
start_dob = Forms!frm_Birth_range_selector!txt_DOB_start
end_dob = Forms!frm_Birth_range_selector!txt_DOB_end
Me.FilterOn = True
DoCmd.ApplyFilter , "DOB >= '" & start_dob & "' and DOB <= '" & end_dob & "'"
End If
End Sub
Я пытался сделать то же самое с формой, используя несвязанные поля для себя и кнопку, чтобы применить фильтр.Тот же запрос.Тот же код за исключением ссылки на разные поля.Те же свойства ящиков, я даже пробовал вставлять копии из формы селектора, чтобы убедиться, что ничего не пропустил.Этот код возвращает ошибку 3464 во время выполнения, ошибку Data type mismatch in criteria expression
:
Private Sub Command33_Click()
Dim start_dob As String
Dim end_dob As String
start_dob = Me.txt_DOB_start
end_dob = Me.txt_DOB_end
Me.FilterOn = True
DoCmd.ApplyFilter , "DOB >= '" & start_dob & "' and DOB <= '" & end_dob & "'"
End Sub
Я попытался заменить Me.
на Forms!frm_birth_log!
.Без изменений.