Запрос доступа к форме столбцов из записей - PullRequest
2 голосов
/ 31 марта 2010

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

У меня есть таблица людей (поля включают имя и некоторые другие атрибуты людей) и таблица каникул - у каждого отпуска есть person_ID, дата начала и дата окончания.

В идеале я бы хотел, чтобы из этого можно было генерировать такую ​​сетку, как у нас в книге Excel:

Date    Person A    Person B    Person C
01 Jan  -           -           -
02 Jan  -           -           -
03 Jan  VAC         -           -
04 Jan  VAC         VAC         -
05 Jan  VAC         VAC         -
06 Jan  -           VAC         -
07 Jan  -           -           -
08 Jan  -           -           -
09 Jan  -           -           -

(В этом примере таблица Vactions содержит две записи - одну для персоны A и одну для персоны B.)

Это возможно в Excel? Или мне придется написать какой-нибудь код?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 31 марта 2010

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

Мягкий Касательный

Мне всегда говорили, что в базе данных есть только 3 числа 0, 1 и n, где n - любое число от 2 до бесконечности. Такое отображение данных хорошо, когда у вас мало сотрудников, но что происходит, когда вы набираете 50 или 300 сотрудников? Я бы посмотрел на отображение данных другим способом, возможно, интерактивной формы или другого типа динамического отображения. Если это должна быть бумага, то, может быть, какой-то отчет разбит на человека?

/ Мягкий тангенс

1 голос
/ 31 марта 2010

Я бы порекомендовал

  • Создание таблицы дат (таблица со строкой для каждой даты, которую вы, вероятно, будете использовать, скажем, с 01.01.2000 по 31.122020)

  • С помощью этой таблицы создайте представление, которое перечисляет каждую дату для каждого человека и показывает, находится ли этот человек в отпуске или нет в эту дату (левое соединение между таблицей отпуска и датой и соединение между отпуском и человеком)

  • Теперь немного сложнее. Теперь вам нужно создать запрос кросс-таблицы .... но с доступом, который может быть интересным (не использовал доступ некоторое время, так что, возможно, ошибался).

  • Однако , я бы порекомендовал построить представление на 2-м шаге выше, а затем использовать возможности Excel для построения сводной таблицы данных для вас. Свяжите свою электронную таблицу Excel с вашей базой данных Access, и каждый раз, когда вашему пользователю понадобится обновить данные, они, urm, обновят его!

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...