У меня есть подчиненная форма, которая отображает данные из таблицы SQL Server, которые пользователи могут изменять в режиме реального времени. Это отлично работает. Мне нужно отобразить столбец, который возвращает агрегированный показатель только для визуального отображения. Пользователю не нужно иметь возможность обновлять эту цифру (что, конечно, в любом случае не может), но мне нужно отображать ее для каждой строки. Каков наилучший способ создать это поле поиска только для чтения, не предотвращая редактирование / добавление элементов таблицы данных Subform?
Я добавил строку с помощью запроса RecordSource, но из-за этого набор данных не обновляется из-за агрегация:
SELECT a.ActivityID,
a.ActivityTypeID,
a.ActivityName,
ap.DateActive,
ap.Points,
a.ActivityActive
FROM (ActivityPoints AS ap
INNER JOIN Activity AS a
ON a.ActivityID = ap.ActivityID)
INNER JOIN
(
SELECT ap2.ActivityID as [ActID],
MAX(ap2.DateActive) as [MaxDate]
FROM ActivityPoints as ap2
GROUP BY
ap2.ActivityID
) AS ap2
ON ap.DateActive = ap2.MaxDate
AND a.ActivityID = ap2.ActID
ORDER BY
a.ActivityID;
Я также пытался сохранить это как запрос и выбрать из него все примерно так, но это тоже нельзя обновить:
SELECT a.ActivityID,
a.ActivityTypeID,
a.ActivityName,
s.DateActive,
s.Points,
a.ActivityActive
FROM SD_Activity AS a
LEFT JOIN SavedQuery as s
ON s.ActivityID = a.ActivityID
Наконец, последнее решение Я должен был создать поле DLookup в ControlSource поля в Subform, чтобы извлечь данные из SavedQuery. Это работает, но, как вы можете себе представить, невероятно ресурсоемкий и громоздкий:
RecordSource
SELECT a.ActivityID,
a.ActivityTypeID,
a.ActivityName,
a.ActivityActive
FROM Activity AS a;
ControlSource
=DLOOKUP("[DateActive]", "[SavedQuery]", "[SavedQuery]![ActivityID] = [ActivityID]")
Каков наилучший способ получения доступного только для чтения столбца поиска в моей таблице данных подчиненной формы, в котором все остальные поля можно обновлять?