双击列表框以打开报告-始终不显示任何记录

时间:2019-01-25 16:42:49

标签: vba ms-access report

我有一个列表框,该列表框使用两个不同的表来获取列表数据(tblWorkOrdertblCustomers)。数据本身全部来自tblCustomers,但是tblWorkOrder只是为了过滤列表中在tblWorkOrder中没有条目的所有项目。这是SQL以防万一:

SELECT DISTINCT tblCustomers.ID, [FName] & " " & [LName] AS FullName
FROM tblCustomers RIGHT JOIN tblWorkOrder ON tblCustomers.ID = tblWorkOrder.CustomerID;

双击的事件过程在这里:

Private Sub lstCustomers_DblClick(Cancel As Integer)
DoCmd.OpenReport "rptCustomers", acViewPreview, , "[tblWorkOrder].[ID] = " & Forms("frmReports")("lstCustomers").Value, acNormal
End Sub

我最初遇到的问题是,字段[ID]引用了两个表,并且可能意味着其中一个表。因此,我添加了[tblWorkOrder]来描述报告所引用的表。我很确定这是我搞砸的地方,但是由于很难引用表单控件,因此我不确定如何引用它。

编辑:这是rptCustomers的SQL:

SELECT tblWorkOrder.Task, [FName] & [LName] AS FullName, tblCustomers.Company, tblCustomers.Email, tblCustomers.ContactPhone, tblCustomers.Address, [City] & ", " & [State] AS CityState, tblCustomers.ZipCode, tblCustomers.Country, tblCustomers.Notes, tblCustomers.ID, "WD0" & [tblWorkOrder]![ID] AS WONumber, tblWorkOrder.ID
FROM tblCustomers RIGHT JOIN tblWorkOrder ON tblCustomers.[ID] = tblWorkOrder.[CustomerID];

1 个答案:

答案 0 :(得分:2)

控件引用没有问题,但是引用了错误的字段。列表框的BoundColumn是tblCustomers.ID,但报表过滤条件引用了tblWorkOrder.ID。应该是tblCustomers.ID,或者如果报表RecordSource包含tblWorkOrder和CustomerID字段,则可以使用tblWorkOrder.CustomerID或仅使用CustomerID。

列表框引用可能更简单:Me.lstCustomers

"tblCustomers.ID = " & Me.lstCustomers

尽管从未有过比赛,这似乎很奇怪。 tblWorkOrder.ID为2仍应与lstCustomers值为2匹配,只是不会成为所需的记录。