Порядок списка комбинированного списка MS Access отличается от источника строки - PullRequest
0 голосов
/ 09 июня 2018

Моя база данных отслеживает оборудование, используемое при событиях.

  • Таблица [Актив] отслеживает все активы (AssetId, AssetName, Make, Model ...)
  • [Событие]таблица отслеживает все события (EventId, EventName, Type, StartDate, ...)
  • [AssetEvent] таблица отслеживает, какой актив был использован при каком событии

«frmUsage» не связан,и имеет выпадающее меню Event (работает отлично) и выпадающее меню «Asset».Я хочу, чтобы в раскрывающемся списке «Актив» отображались активы, упорядоченные по AssetName, но для привязки значения AssetId (для использования в других частях формы).

SQL актива:

SELECT A.AssetId, A.AssetName FROM tbl_Asset AS A INNER JOIN tbl_AssetEvent 
AS AE ON A.AssetId = AE.AssetId WHERE (((AE.EventId) Like 
Nz(Forms!frmUsage.EventId,"*"))) GROUP BY A.AssetId, A.AssetName ORDER BY A.AssetName;

Поведение:

  • Ожидается: если событие выбрано в форме, на нем должны отображаться только активы, связанные с формой.Фактическое поведение соответствует ожидаемому.
  • Ожидается: раскрывающиеся значения должны отображать AssetName и связывать AssetId.Фактическое поведение соответствует ожидаемому.
  • Ожидается: значения раскрывающегося списка должны упорядочиваться по AssetName.Реальное поведение НЕ как ожидалось.Значения упорядочены по AssetId.

Как это исправить?

Детали: поле со списком сконфигурировано с:

  • Количество столбцов: 2
  • Ширина столбца: «0 см; 2,5 см».
  • Тип источника строки: Таблица / Запрос
  • Связанный столбец: 1
  • Ограничение списка: Да

1 Ответ

0 голосов
/ 23 июня 2018

Если вам действительно нужна группировка AssetID, но запрос работает не так, то вы можете добавить его в отдельный запрос внутри и Order By вне этого.

SELECT * FROM 
(SELECT A.AssetId, A.AssetName FROM tbl_Asset AS A INNER JOIN tbl_AssetEvent 
AS AE ON A.AssetId = AE.AssetId WHERE (((AE.EventId) Like 
Nz(Forms!frmUsage.EventId,"*"))) GROUP BY A.AssetId, A.AssetName)
ORDER BY A.AssetName;
...