Ms access 检查表中的字段中是否存在某些数据

Ms access 检查表中的字段中是否存在某些数据,ms-access,vba,Ms Access,Vba,我有一个表tblForms,其中一个字段是另一个表tblClients的查找。如何确定某个客户机是否有tblForms中的数据?只有当客户端出现在tblForms中时,DCount才起作用 我有一个带有命令按钮的frmDisclosure表单-onClick: Private Sub Command245_Click() On Error GoTo Command245_Click_Err DoCmd.OpenForm "frmClient", acNormal, "", "[ClientID

我有一个表tblForms,其中一个字段是另一个表tblClients的查找。如何确定某个客户机是否有tblForms中的数据?只有当客户端出现在tblForms中时,DCount才起作用


我有一个带有命令按钮的frmDisclosure表单-onClick:

Private Sub Command245_Click()
On Error GoTo Command245_Click_Err

DoCmd.OpenForm "frmClient", acNormal, "", "[ClientID]= " & Me.Client, , acNormal
DoCmd.Close acForm, "frmDisclosure"

Command245_Click_Exit:
Exit Sub

Command245_Click_Err:
MsgBox Error$
Resume Command245_Click_Exit

End Sub
当我点击此按钮时,我得到错误注意:如果我直接从交换机打开frmClient,我不会得到错误。frmClient有一个子表单连续frmFormsList,其数据来自:

SELECT tblForms.ClientLookup, tblForms.Issued, First(tblForms.RefNo) AS FirstOfRefNo, Last(tblForms.RefNo) AS LastOfRefNo, Count(tblForms.RefNo) AS CountOfRefNo, tblClient.KnownAs, tblClient.EMail
FROM tblForms INNER JOIN tblClient ON tblForms.ClientLookup = tblClient.ClientID
GROUP BY tblForms.ClientLookup, tblForms.Issued, tblClient.KnownAs, tblClient.EMail
HAVING (((tblForms.Issued) Is Not Null));
此函数位于frmFormsList中:

Public Function NumRecs() As Integer

NumRecs = DCount("*", "tblForms", "ClientLookup = " & Me.ClientLookup)

End Function
我的查询显示我向客户发送表单的数据。因此,如果我没有向客户端发出表单,则查询不会显示该客户端的任何内容,因此不会给出结果0。我得到运行时错误2427您输入的ans表达式没有值。NumRecs=DCount*,tblForms,ClientLookup=&Me.ClientLookup在调试中突出显示

在frm披露中,如果我Rem out,acNormal,[ClientID]=&Me.Client,acNormal,则问题不会发生,但我不会直接找到我感兴趣的客户。因此,当我尝试使用Rem'd out位打开一个表单时,问题就出现了,因为客户机没有收到任何表单。当我直接选择frm客户端时,显示的rocord没有发出表单,但问题没有出现。

以下是解决方案: 作为整数的公共函数NumRecs

Dim dbs As DAO.Database
Dim rs As Object

Set dbs = CurrentDb
Set rs = dbs.OpenRecordset("qryDisclosure", dbOpenDynaset)

If Me.Recordset.RecordCount = 0 Then
    NumRecs = 0
Else
    NumRecs = Nz(DCount("*", "qryDisclosure", "ClientLookup = " &   Me.ClientLookup), 0)
End If

结束函数

举个例子,你的描述很模糊。如果DCount为0,则客户端不会出现在tblForms中,因此您有您的答案,对吗?我有一个带有命令按钮的表单frmDisclosure-单击:Private Sub Command245\u单击错误转到Command245\u单击\u Err DoCmd.OpenForm frmClient,acNormal,[ClientID]=&Me.client,acNormal DoCmd.Close acForm,frmDisclosure命令245_单击_退出:退出子命令245_单击_错误:MsgBox错误$Resume命令245_单击_退出结束子命令