2013-10-09 25 views
0

我想使用函數DCount(「[fieldname]」,「qryname」)來計算我在一個私人小組中創建的動態查詢返回的記錄數。在我的子,我做這樣的事情我可以在運行時引用在DCount函數中生成的查詢嗎?

Private Sub getRecs(ByVal stype, ByVal whichrecs, ByVal sorder) 
     Dim x as String 
     x = "SQL statement... 
     . 
     . 
     . 
     " 
     Me.RecordSource = x 
     Me.Requery 
    End Sub 

在運行時創建的查詢,所以我不能將它保存提前像DCOUNT時間和參考(「[字段名]」,「qryname」)。

我已經試過子內引用這樣

tcount = DCount("[fieldname]", "x") 
tcount = DCount("[fieldname]", "Me") 
tcount = DCount("[fieldname]", x) 
tcount = DCount("[fieldname]", Me) 

前兩個嘗試導致錯誤信息運行時間3078 - 接入找不到查詢所謂的「X」或「我」。沒有引號,錯誤是運行時間3163 - 該字段太小,無法接受嘗試添加的數據量。

我可以在運行時引用在DCount函數中生成的查詢嗎?

謝謝。

回答

1

爲什麼要使用DCount的任何特定原因?還有另一種應該工作:

Function CountValues(SelectStatement As String, FieldName As String) As Long 
    Dim RS As Recordset 
    Set RS = CurrentDb.OpenRecordset("SELECT Count(" + FieldName + ") FROM (" + SelectStatement + ")") 
    CountValues = RS(0) 
End Function 

因此:

tcount = CountValues(Me.RecordSource, "[fieldname]") 
+0

很不錯,這是一個不錯的選擇,我的思維。 – jamesTheProgrammer

相關問題