Порядок списка комбинированного списка MS Access отличается от источника строки
Моя БД отслеживает оборудование, используемое на мероприятиях.
- Таблица [Asset] отслеживает все активы (AssetId, AssetName, Make, Model...)
- Таблица [Event] отслеживает все события (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 и bind AssetId. Фактическое поведение соответствует ожиданиям.
- Ожидаемый: значения раскрывающегося списка должны быть упорядочены по AssetName. Реальное поведение НЕ как ожидалось. Значения упорядочены по AssetId.
Как это исправить?
Подробности: поле со списком настроено с:
- Количество столбцов: 2
- Ширина столбца: "0 см;2,5 см".
- Тип источника строки: Таблица / Запрос
- Связанная колонна: 1
- Ограничить список: Да
1 ответ
Решение
Если вам действительно нужно 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;