Я застрял и мне нужна помощь / совет. Я почти уверен, что я не первый, кто сталкивается с этой проблемой, но я не могу найти ответ в Интернете.
Мы собираем все виды данных со многих фабрик. В основном это прогнозные значения годового пика производства и т. Д. Этот сбор данных повторяется каждый год.
В настоящее время мы отслеживаем эти данные в Excel, который имеет следующую структуру:
Factory | 2010 | 2011 | 2012 | ..
----------------------------------
A | 20 | 30 | 28 | ..
B | | 39 | 55 | ..
В этом примере фабрика B только начинает производство в 2011 году. Если мы собираем данные за дополнительный год, мы просто добавляем столбец. Если прогнозируемые данные меняются, мы просто вводим новые значения и теряем старые. Вы можете себе представить, что этот способ работы имеет свои ограничения: таблица становится довольно разреженной для отсутствующих данных. Старые значения не могут быть прослежены. Нет ссылки на источник значений.
Чтобы удовлетворить нашу потребность в лучшей системе, я применил свои античные знания баз данных. В Access 2007 я создал следующую структуру:
Таблица: Фабрики
FacID | FactoryName
---------------------
1 | A
2 | B
Таблица: Источники
SouID | Source | SourceDate
---------------------------------
1 | DocumentX | Sep. 2009
2 | DocumentY | Jan. 2010
Таблица: параметры
ParID | FacID | SouID | ParamType | Year | Value
------------------------------------------------------
1 | 1 | 1 | PeakProduction | 2010 | 20
2 | 1 | 1 | PeakProduction | 2011 | 30
3 | 1 | 1 | PeakProduction | 2012 | 28
4 | 2 | 1 | PeakProduction | 2011 | 39
5 | 2 | 2 | PeakProduction | 2012 | 55
Для каждого нового сбора данных мы просто добавляем новый исходный документ и добавляем таблицу параметров. Таким образом, мы всегда можем вернуться к старым данным. Кроме того, если собраны дополнительные годы, нет необходимости добавлять дополнительные столбцы в какую-либо таблицу.
Хотя фактическая установка более сложна, приведенных выше примеров достаточно, чтобы проиллюстрировать проблему, с которой я сталкиваюсь: для ввода данных в базу данных я хотел бы иметь одну форму, которая напоминает исходную схему листа Excel, т.е. :
Factory | 2010 | 2011 | 2012 |
------------------------------
A | | | |
B | | | |
Конечно, эта форма будет иметь выпадающее меню для выбора исходного документа и типа параметра (в примере «PeakProduction»).
Мой вопрос: с помощью перекрестных запросов легко создать такое представление на основе существующих данных в базе данных, однако ввод новых значений недопустим. Что я могу сделать, чтобы сделать эту работу, и как?
Должен ли я пересмотреть дизайн моей базы данных? Должен ли я работать с VBA? Связать базу данных Access с таблицами Excel?
Спасибо!