Access / VBA - создание новой таблицы с сгруппированными записями - PullRequest
0 голосов
/ 29 июня 2018

Я думал о своей проблеме и исследовал ее здесь и в Интернете. Кажется, я не продвинулся дальше ...

У меня есть база данных с разными таблицами. Один из них похож на клиентский стол. Каждый клиент должен отправлять формы (до 3) каждый месяц, это во второй таблице.

Это выглядит примерно так:

**tblReportedFiles**
ID Month Form
1 201803 1
2 201803 1
1 201803 2
2 201804 2
3 201804 3
1 201804 1

Моя цель - создать код, который создаст новую таблицу со следующим набором данных:

    clientID - ReportingMonth - Form 1 - Form 2 - Form 3
        1         201803         true     true     false
        2         201803         true     false    false
        3         201803         false    false    false
        1         201804         true     false    false
        2         201804         false    true     false
        3         201804         false    false    true

Я просто не могу заставить что-либо работать. Я играю с SQL и VBA, но ничто не идет в правильном направлении.

У вас есть идеи?

1 Ответ

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

Вы можете использовать кросс-таблицу (сводную) запрос для достижения этой цели. Это более гибко, чем решение, предложенное Jaime, поскольку оно будет автоматически создавать столбцы при добавлении новых форм в таблицу.

TRANSFORM CBool(Count([Form]))
SELECT ID, [Month]
FROM tblReportedFiles
GROUP BY ID, [Month]
PIVOT "Form " & [Form]

Мы оба преобразуем Form в число, приведенное к логическому значению, и поворачиваемся на Form. Это означает, что если конкретное значение Form встречается для группирующих переменных, счетчик будет равен 1, и он приведен к логическому True, а если нет, то счетчик будет равен 0, что приведёт к логическому False.

...