0
我確實有一個使用許多控件作爲標準的動態窗體過濾器的Access窗體。就好除外我的日期範圍內的所有工作......下面是一段代碼,我使用..MS Access窗體過濾器日期範圍
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」的WHERE條件似乎就好了。
Howerver我仍然得到「輸入參數值」,即使重新輸入也不顯示任何內容。
當我的表單過濾器沒有使用日期範圍時,一切都運行平穩。
建議,想法更受歡迎。 (請記住,我不是一個VB大師........所以請友好:-))
不,我錯了。應該更仔細地閱讀你的代碼。你的常量有日期包裝。抱歉。 - MrE – 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