Двойной щелчок по списку, чтобы открыть отчет - всегда отображается без записей - PullRequest
0 голосов
/ 25 января 2019

У меня есть список, который использует две разные таблицы для получения данных списка (tblWorkOrder & tblCustomers).Все данные взяты из 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], чтобы определить, к какой таблице относится отчет.Я почти уверен, что именно здесь я все испортил, но, будучи настолько плохим в ссылках на элементы управления формы, я не совсем уверен, как ссылаться на него.

РЕДАКТИРОВАТЬ: Вот SQL для rptCustomers:

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 голосов
/ 25 января 2019

Нет ничего плохого в контрольной ссылке, однако ссылка на неправильное поле. Listbox BoundColumn - это tblCustomers.ID, но критерии фильтра отчета ссылаются на tblWorkOrder.ID. Должно быть tblCustomers.ID или если в отчете RecordSource содержатся поля tblWorkOrder и CustomerID, можно использовать tblWorkOrder.CustomerID или просто CustomerID.

Ссылка на список может быть проще: Me.lstCustomers

"tblCustomers.ID = " & Me.lstCustomers

Хотя кажется странным, что совпадения никогда не бывает. Значение tblWorkOrder.ID, равное 2, все равно должно совпадать со значением lstCustomers, равным 2, просто не будет желаемыми записями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...