MS Access Macro计算符合多个条件的记录

时间:2013-07-10 09:18:59

标签: ms-access count ms-access-2007 criteria

我在一对多关系中有一个问题和行动表。

我有一个表单OIssues,它允许用户浏览每个问题。它有一个嵌入式子窗体,显示与该问题相关的操作,还有执行宏的命令按钮,允许用户快速向子窗体添加操作。

但是,我希望能够在用户尝试添加针对该问题已存在的操作时提示用户。

因此,我认为我需要将VBA添加到命令按钮单击,这将检查IssueID 1234存在多少条记录,并且属于“更改请求”类型。如果大于1,则提示用户。但是我找不到正确的命令来做到这一点!

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

按钮后面的VBA代码。

Dim db as database
Dim rec as recordset

set db = currentDb
set rec = db.openrecordset("Select IssueID from YourTableName WHERE IssueID = " & Me.IssueID & " AND Type = '" & Me.Type & "'")

X = 0

rec.movefirst
If rec.eof = False then

rec.movelast
X = rec.recordcount
EndIf


If X > 1 then
  msgbox "This already exists"
EndIf
编辑:我没有具体看到你的表格布局是什么,所以你可能必须在OpenRecordSet中进行某种加入而不是直接“从YourTableName中选择IssueID”。

答案 1 :(得分:-1)

A slightly better answer would be to use the COUNT function for example :-

Dim db as database
Dim rec as recordset
dim cnt as long

set db = currentDb
set rec = db.openrecordset("Select count(IssueID) from YourTableName WHERE IssueID = " & Me.IssueID & " AND Type = '" & Me.Type & "'")

cnt=0
if not rec.eof then cnt=rec.fields(0)

If cnt > 0 then msgbox "This already exists"