2016-08-19 49 views
0

試圖將2個篩選器同時應用於子窗體。子窗體上的多個篩選器

想要查看日期X和Y之間以及僅來自BRANCH Z的記錄。

單獨工作很好,但不能同時使用兩者。我知道這件事情

當前代碼:

Private Sub Command39_Click() 
If IsNull(Me.txtFrom) Or IsNull(Me.txtTo) Then 
    MsgBox "Insert date!" 
Else 
    With Me.frmDailyRevenue.Form 
     .Filter = "[DateDbl] BETWEEN " & Me.txtFromDbl & " AND " & Me.txtToDbl & "" And [F5] = " & Me.cboBranch & """ 
     .FilterOn = True 
    End With 
    End If 
End Sub 

這是代碼,我從網上得到的我真的很新的這個基本位。

所以,所有的建議是值得歡迎的。

回答

2

試試這個:

.Filter = "[DateDbl] BETWEEN #" & Format(Me.txtFromDbl,"mm\/dd\/yyyy") & _ 
    "# AND #" & Format(Me.txtToDbl,"mm\/dd\/yyyy") & "# And [F5] = '" & Me.cboBranch & "'" 

我假設Me.cboBranch是文本。如果此字段包含代碼,請刪除單引號。

另外我注意到,檢查和控制從不同的數據獲取的控件(Me.txtFrom和Me.txtFromDbl,Me.txtTo和Me.txtToDbl),請檢查它。

+0

將該行更改爲以下並且它返回此消息:「標準展望中的數據類型不匹配」。 .Filter = 「[DateDbl] BETWEEN」 &Me.txtFromDbl& 「和」 &Me.txtToDbl& 「和[F5] = '」 &Me.cboAgDep& 「'」 我不'噸使用#因爲我的日期數量(雙)格式,而不是mm/dd/yyyy,由於各種原因。 – Felps

+0

所以,[DateDbl]包含數字。什麼是Me.txtFromDbl?我會使用'BETWEEN'&CLng(CDate(Me.txtFrom))&「AND ...',如果在txtForm中有普通文本格式的日期。並檢查表字段的數據類型,它是cboAgDep的控制源。如果是數字,請刪除單引號。 –

+0

也可以使用'Format(Me.txtFrom,「#」)來代替'CLng(CDate(Me.txtFrom))'' –

0

發現問題。

對日期範圍使用BETWEEN和AND與第二個AND產生一些衝突,以便爲字段F5添加過濾器。

所以我切換到使用> =和< =如下:

.Filter = "[DateDbl] >= " & Me.txtFromDbl & " AND [DateDbl] <= " & Me.txtToDbl & " AND [F5] = " & Me.cboBranch & ""

只是爲了澄清,爲以後可能出現的這個人,你應該使用#作爲謝爾蓋指出,如果你有日期字段,我的日期是雙格式,所以我不需要。

謝謝,

+0

Datevalues應該包含在散列內:'#8/18/2016#' – 2016-08-19 02:52:13