У меня есть форма доступа с фильтром динамической формы, использующая множество элементов управления в качестве критерия. Все работы просто отлично освобожденные для моего диапазона дат ... Вот кусок кода, я использую ..MS Access Form Filter Диапазон дат
Private Sub Command4_Click()
Dim strWhere As String
Dim lngLen As Long
Const DMY = "\#dd\/mm\/yyyy\#"
'***********************************************************************
If Not IsNull(Me.PerPNum) Then
strWhere = "([PNum] = " & Me.PerPNum & ") AND "
End If
If Not IsNull(Me.PerPPro) Then
strWhere = strWhere & "([PPro] = " & Me.PerPPro & ") AND "
End If
If Not IsNull(Me.PerPRev) Then
strWhere = strWhere & "([PRev] = " & Me.PerPRev & ") AND "
End If
If Not IsNull(Me.PerDesi) Then
strWhere = strWhere & "([Uinit] = """ & Me.PerDesi & """) AND "
End If
If Not IsNull(Me.DateStart) Then
strWhere = strWhere & "([TaskStart] >= " & Format(Me.DateStart, DMY) & ") AND "
End If
If Not IsNull(Me.DateEnd) Then
strWhere = strWhere & "([TaskEnd] < " & Format(Me.DateEnd + 1, DMY) & ") AND "
End If
lngLen = Len(strWhere) - 5
If lngLen <= 0 Then
MsgBox "No criteria", vbInformation, "Nothing to do."
Else
strWhere = Left(strWhere, lngLen)
Me.Debug.Value = strWhere
Me.Sub_Desi_Schedule.Form.Filter = strWhere
Me.Sub_Desi_Schedule.Form.FilterOn = True
End If
Когда я смотрю на свой «Debuger» ГДЕ критерий кажется просто отлично.
Howerver Я все еще получаю «Введите значение параметра», и ничего не отображается, даже если вы повторно вводите их.
Когда вы не используете диапазон дат в моих фильтрах форм, все работает плавно.
Предложения, идеи более чем приветствуются. (пожалуйста, имейте в виду, что я не являюсь VB-гуру ........ Так что будьте добры :-))
Нет, я ошибаюсь. Должен был прочитать ваш код более внимательно. У вашей константы есть обертки даты. Сожалею. - MrE – MrE
Привет, господин ЭТО То, что эта часть кода делает как константа Const DMY = "\ #dd \/mm \/yyyy \ #" В моем управлении отладчиком вот результат: ([TaskStart]> = # 01/05/2015 #) И ([TaskEnd] <# 01/06/2015 #) Я действительно царапаю голову над этим ... –
На этот раз сделал еще немного домашней работы. Это странно, но я получил его для работы, удалив ключевое слово WHERE: Me.Filter = "[StartDate]> = # 05/05/1970" Найдено на http://answers.microsoft.com/en-us/ office/forum/office_2003-access/mefilter/c07d6930-2ace-46c0-a3e6-e16a2c686500 - Надеемся, что это поможет, но может вызвать проблемы с вашими другими фильтрами. – MrE