Поле со списком формы отображает неверную информацию - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть несвязанное поле со списком, которое позволяет пользователю выбрать имя сотрудника (запрашивающая сторона).Когда этот сотрудник выбран, он обновляет следующее поле, чтобы показать имя (имя) менеджера конкретного сотрудника.

В качестве связанного столбца в поисковом запросе у меня есть ManagerID, и имя сотрудника должно отображаться в форме при его выборе.Вместо этого, после того, как пользователь выбирает сотрудника, в поле отображается имя первого сотрудника, назначенного этому менеджеру.Например, я нажимаю на поле со списком и вижу список сотрудников (эта часть отображается правильно).Я выбрал Салли Сью.Как только я выбираю Салли Сью, текст в поле показывает Боба Бата, который является первым сотрудником, которого менеджер Салли имеет в своем списке в базе данных.

Вот самый большой кикер ... Когда я проверяю таблицу, которая обновляет эту форму, Салли Сью находится в правильном месте.Все мои данные в правильном месте.Единственное, что является неправильным, это то, что сотрудник показывает неправильное в форме после того, как пользователь выбирает сотрудника.Это не влияет на точность моих данных, это просто раздражает.

У меня есть связанный столбец как 1, но я попытался переместить его в 2 и сделать ширину столбца 0 и переместить имя моего сотрудника в первое место в запросе.

Вот код SQL, который отображается для моего запроса:

SELECT tbl_Owner.Owner_ID, 
    tbl_Requester.RequesterName, 
    tbl_Owner.ownerName 
    AS RequestOwner
FROM tbl_Owner INNER JOIN tbl_Requester ON 
    tbl_Owner.Owner_ID = 
    tbl_Requester.RequestOwner
ORDER BY tbl_Requester.RequesterName;

Когда имя сотрудника выбрано, в форме должно отображаться имя выбранного сотрудника.Вместо этого он показывает имя первого назначенного сотрудника менеджера.

1 Ответ

0 голосов
/ 17 февраля 2019

при условии структуры таблицы, такой как:

enter image description here

Итак, я предположил, что у каждого сотрудника может быть только один менеджер.Создайте форму с таблицей сотрудников в качестве источника записи (поскольку вы хотели показать данные сотрудника.)
добавьте два комбинированных списка в заголовок формы (cboEmployees, cboManagers).для каждого выпадающего списка оставьте источник управления пустым.Связанный столбец cboEmployee = EmployeeId, связанный столбец cboManagers = ManagerID.

cboEmployees.recordsource = SELECT Employees.EmployeeID, Employees.EmployeeName, Employees.ManagerFK
FROM Employees;
cboManagers.recordsource = SELECT Managers.ManagerID, Managers.ManagerName
FROM Managers;

Скрыть столбцы комбинированного списка, которые вы не хотите видеть, затем установите событие cboEmployees afterupdate на:

Private Sub cmbEmployee_AfterUpdate()
cmbManager.Value = cmbEmployee.Column(2) 'set cmbManager to employees manager
Me.Filter = "EmployeeID = " & cmbEmployee.Value 'filter form to just the employees data
Me.FilterOn = True
End Sub

теперь, когдавы изменяете имя сотрудника в верхнем левом поле со списком, в верхнем правом окне отображается имя менеджера.только имя сотрудника включено в данные этой формы, но оно также изменяется.

До:

enter image description here

После:

enter image description here

...