我在Acces中计算子记录的查询不起作用?

时间:2016-06-03 10:09:25

标签: sql database vba ms-access access-vba

我的查询有问题。我有一个带有Table" Label"的数据库。包含一些子记录(" ReleaseID")。

我想做什么:我想计算链接到Label表中LabelID的子记录。我有以下代码:

Dim db As Object
    Dim rst As Recordset
    Set db = CurrentDb
    Dim qryCount As String
    Dim Value as integer

qryCount = "select count(ReleaseID) as aantal from(select LabelID, ReleaseID from Label where LabelID = " & Me!LabelID")


    Set rst = db.OpenRecordset(qryCount, dbOpenDynaset)
    Value = rst!aantal

当我在Acces的Query设计中尝试时,查询正在运行。但是当我在VBA中使用它时它就没有了。

感谢任何帮助。

4 个答案:

答案 0 :(得分:1)

我不确定它是否只是一个副本错误,但是结束支撑丢失了,不是吗?

qryCount = "select count(ReleaseID) as aantal from(select LabelID, ReleaseID from Label where LabelID = " & Me!LabelID & ")"

答案 1 :(得分:1)

如果你只是在寻找一个计数,你可以用DCount

来做
varCount = DCount("ReleaseID", "Label", "LabelID = " & Me!LabelID)

无需记录集。如果您没有遍历记录集,则Dcount更简单,对系统的负担更少。

它被称为域功能,如果你有空闲时刻(Dlookup,DSum,Dmax,Dcount),非常值得查看。

答案 2 :(得分:1)

为什么不使用 DCount

Dim Value As Long
Value = DCount("*", "ReleaseTable", "[LabelID] = " & Me!LabelID.Value & "")

答案 3 :(得分:1)

当您不对其进行格式化时,很难看到您的实际代码。

这是您上次发布的内容

qryCount = "select count(ReleaseID) as aantal from Label where LabelID = " & Me!LabelID 
Set rst = db.OpenRecordset("Label", dbOpenDynaset) 
Value = rst1!aantal 

如果那是你实际拥有的那么你

  
      
  1. 可能无法使用价值 - 我认为这是一个保留字
  2.   
  3. 您已将记录集名称设置为rst,但您尝试使用rst1进行值参考
  4.