Сравнить электронную таблицу с базой данных для создания документа

1521
Secundus

Я пытаюсь упростить производство документа, который должен создаваться на регулярной основе. Существуют задачи, связанные с подробными инструкциями по их выполнению, и у каждого из них есть определенный идентификационный номер, который повторно используется в различных проектах. Я высосал как можно больше этих идентификаторов задач в базу данных доступа.
Для каждого проекта кто-то другой извлекает список всех необходимых задач из другой базы данных, к которой у меня нет доступа, и помещает их в книгу Excel в стандартном формате. Для каждого проекта мне нужно:

  • Подтянуть все соответствующие задачи по номеру ID
  • Сравните их со стандартным списком в моей базе данных, в котором есть шаги для выполнения задачи и некоторая другая информация
  • Создать документ с определенным форматом, используя конкретную информацию о задачах

Написание макроса в Excel казалось большой работой, но лучшим выбором, но я не могу быть уверен, что база данных доступа всегда будет оставаться на том же месте, к которому она принадлежит. Поскольку база данных является единым элементом во всех проектах, я подумал о написании макроса в Access и наличии диалогового окна с вопросом, где будет работать электронная таблица, но использование таблицы для сравнения двух списков показалось более сложным, чем просто создание таблицы сравнения. в Excel. Я не задумывался о написании макросов в Word, хотя это тоже возможно.

Я пытаюсь найти наиболее логичный способ создания этой настройки. Использование 3-х различных офисных программ кажется довольно запутанным, но я ограничен в программном обеспечении, которое у меня есть для этого:

  • Office 2007
  • Вне всякого сравнения
  • Другие установленные программы (я не могу установить дополнительное программное обеспечение) не имеют отношения к задаче

У кого-нибудь есть идеи, как это сделать?

1

3 ответа на вопрос

1
Njean

Если у вас есть Crystal Reports, вы можете присоединить таблицу Excel к таблицам Access; затем распечатайте 2 отчета, один с сопоставлением данных по идентификатору, а другой отчет с перечислением записей без сопоставления идентификаторов. Форматирование это круто. Я пишу отчеты, где присоединяю файлы Excel к базе данных Oracle для составления отчетов. Вы должны иметь возможность присоединить файл Excel к ACCESS и создавать отчеты одного и того же типа, предполагая, что оба поля идентификатора совпадают.

0
ddri

Рассматривали ли вы использование подключения ODBC для связи двух наборов данных?

Результаты Google для ODBC и Excel

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

С любой стороны вы можете добавить новые данные и сравнить их с существующими (с запросами в Access или сводной таблицей в Excel). Если вы создаете новый столбец / поле, которое будет действовать как простой логический флаг, вы можете различать наборы данных и объединять их в одну таблицу / документ. Или примените код для еженедельного (или любого другого периода) импорта, чтобы вы могли использовать это поле «флаг» для будущих запросов.

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

Если вы можете «вымыть» свои данные, чтобы анонимизировать их, пожалуйста, опубликуйте несколько примеров для более конкретных решений.

0
SeanC

Вы можете получить в Excel данные в виде набора записей, что позволит легко сравнивать

Dim xldb As New adodb.Connection Dim xlcmd As New adodb.Command Dim XL As New adodb.Recordset  With xldb .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source=" & FileName & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;ReadOnly=True"";" .Open End With  Set xlcmd.ActiveConnection = xldb xlcmd.CommandType = adCmdText xlcmd.CommandText = "Select * from [Sheet1$]" XL.CursorLocation = adUseClient XL.CursorType = adOpenDynamic XL.LockType = adLockOptimistic XL.Open xlcmd 

Теперь вы можете использовать набор записей XL, искать / проходить по нему и помещать информацию в свою базу данных.