Использовать скрытые столбцы / поля запроса в отчете MS Access - PullRequest
0 голосов
/ 23 октября 2018

У меня есть запрос, который объединяет несколько таблиц.Запрос запрашивает параметр при запуске.Затем он отображает несколько столбцов / полей из своих результатов, остальные поля (например, введенный параметр и другие поля, общие для всех строк) скрыты.Я пытаюсь создать свой первый отчет Access на основе этого запроса, и я хотел бы использовать некоторые из этих скрытых полей в качестве источника записей для текстовых полей / меток, но я не смог этого сделать.Эти поля не отображаются в списке возможных источников записей.

Я попробовал кнопку Add Existing Fields и выбрал нужное поле из Fields in related tables, но когда в отчете отображается ограниченное текстовое поле сошибка типа Invalid Control Property. No Such Field in the Field List, которая, я думаю, означает, что поля все еще невидимы для отчета.Буду признателен за любую помощь, чтобы сделать это.

1 Ответ

0 голосов
/ 23 октября 2018

Ответы - отредактировать запрос и включить отсутствующие столбцы, чтобы они были доступны для отчета.

Для не выбранных столбцов запроса использование слова «скрытый» вводит в заблуждение.Способ работы SQL - даже вне SQL в общей концепции наборов данных - заключается в том, что в запросе запрашиваются только подмножеств данных.Если некоторые столбцы не выбраны в запросе, они просто и просто НЕ доступны в результирующем наборе данных.

Может быть возможно повторно получить исключенные столбцы с другим запросом, но это все еще не означает, чтонедостающие столбцы были просто «спрятаны».В случае последующего запроса для получения различных столбцов данных ядро ​​базы данных должно повторно проанализировать новый запрос, повторно прочитать данные, а затем скомпилировать данные из нового набора столбцов, которые будут возвращены в совершенно новом подмножестведанные.Это полный круговой процесс, который намного сложнее, чем просто скрытие данных.

Формы и отчеты представляют собой совершенно разные типы объектов, которые могут помечать поля как «скрытые», но запрос не являетсято же самое, несмотря на то, что отображается в таблице данных.Такие объекты, как объекты Access Forms и Recordset в коде (VBA), предназначены для хранения подмножеств запрашиваемых данных , поэтому они могут временно скрывать (или игнорировать) или отменять скрытие определенных полей без повторного запроса к базе данных.,(Технически Форма доступа имеет свой собственный объект Recordset для хранения и управления запрашиваемыми данными.)

Несмотря на то, что Access «самодостаточен» как с элементами базы данных, так и с элементами пользовательского интерфейса, он по-прежнему в основном является стандартной СУБДСистема управления базами данных).Основная идея эффективной обработки данных в СУБД состоит в том, чтобы получить только то, что вам нужно для текущей операции.Учтите, что SQL можно использовать для запроса данных с удаленного сервера.Даже Access может получать данные и обновлять данные, например, на SQL Server.Если бы поля данных были «скрыты» только тогда, когда они не включены в запрос, это означало бы, что вся база данных (или, по крайней мере, вся таблица) будет передаваться взад и вперед, и что единственное, что мешает получить доступ к любому столбцу, - это «делая его видимым ", как будто это на самом деле сразу же доступно.Это было бы ужасно неэффективно как для памяти, так и для удаленной связи.

...