我有这个查询可行。
我想在Access VBA中编写此查询,当我执行此查询以在表单中向我显示结果时显示文本字段。 在我的表格上,我有一个名为“结果”的文本框 所以我想在执行此查询时在我的文本框中显示名称为“Result”但是我想在VBA中写这个。怎么做?
SELECT ORDINACIJA.Exam, Count(*) AS total
FROM ORDINACIJA
WHERE ORDINACIJA.Exam='EHO ABDOMENA' AND ORDINACIJA.month='JANUARY'
GROUP BY ORDINACIJA.Exam;
答案 0 :(得分:2)
你不需要SQL。在VBA中,您可以使用DCount
函数:
Dim lngCount As Long
lngCount = DCount("Exam", _
"ORDINACIJA", _
"ORDINACIJA.Exam='EHO ABDOMENA' AND ORDINACIJA.month='JANUARY'")
Result.Text = lngCount
但更好的解决方案是设置文本框"控制源"属性如下:
=DCount("Exam", "ORDINACIJA", "ORDINACIJA.Exam='EHO ABDOMENA' AND ORDINACIJA.month='JANUARY'")
这样,当表单打开时,文本框的值将是正确的,此外,每当需要更新值时(例如,如果表的数据已更改),只需执行在VBA中关注:
Result.Requery
答案 1 :(得分:0)
您可以将查询分配给字符串变量,然后使用CurrentDB.OpenRecordset执行查询,如下所示:
sub DoMyQuery()
dim S as String
dim R as recordset
S = "SELECT ORDINACIJA.Exam, Count(*) AS total "& _
"FROM ORDINACIJA "& _
"WHERE ORDINACIJA.Exam='EHO ABDOMENA' AND ORDINACIJA.month='JANUARY' "& _
"GROUP BY ORDINACIJA.Exam;"
Set R = CurrentDB.OpenRecordset(S)
' do what ever needs to be done with data returned here
R.close
end Sub