Sql 如何处理VBA查询结果

Sql 如何处理VBA查询结果,sql,vba,ms-access,Sql,Vba,Ms Access,我在access中有一个查询,它根据CompanyID字段选择特定公司的所有联系人。在我的表单上,我选择了一些标签,这些标签将被查询结果填充。但是,我有点纠结于如何填充标签,因为查询将返回多个联系人 询问 ConactData = "SELECT * FROM Contacts WHERE CompanyID = " & CompanyValue & ";" 显然我能做到 Set rst = CurrentDb.OpenRecordset(ContactData, dbOpen

我在access中有一个查询,它根据CompanyID字段选择特定公司的所有联系人。在我的表单上,我选择了一些标签,这些标签将被查询结果填充。但是,我有点纠结于如何填充标签,因为查询将返回多个联系人

询问

ConactData = "SELECT * FROM Contacts WHERE CompanyID = " & CompanyValue & ";"
显然我能做到

Set rst = CurrentDb.OpenRecordset(ContactData, dbOpenSnapshot)
Me.lblTitle.Caption = rst!Title
Me.lblFirstName.Caption = rst!FirstName
Me.lblLastName.Caption = rst!LastName 
Me.lblEmail.Caption = rst!Email 
Me.lblMobileNumber.Caption = rst!MobileNumber 

但这只是从表中选择第一个结果,那么,我如何才能进入下一个结果?如果我认为MoveNext方法只会转到表中的下一条记录,而不是查询结果,那么我的想法是否正确

为什么要使用标签?只需构建绑定到表的表单

然后在代码中执行以下操作:

Me.RecordSource = "SELECT * FROM Contacts WHERE CompanyID = " & CompanyValue & ";"
这意味着你不需要一堆代码来填写表格,它是为你做的。您的示例也不允许编辑数据。在所有数据都自动显示的情况下编写一堆代码是对开发人员时间和资源的浪费

事实上,为什么不将表单绑定到表,然后使用where子句打开表单呢

例如:

所以不清楚你为什么要写这些代码并做倒立练习——这根本不是必需的

docmd.openform "frmContacts",,,"CompanyID = " & CompanyValue