1

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

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

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

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

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

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

3 ответа3

1

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

0

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

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

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

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

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

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

0

Вы можете получить в 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, искать / проходить по нему и помещать информацию в свою базу данных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .