Подтвердить что ты не робот

Как изменить сохраненную спецификацию импорта Microsoft Access 2007 или 2010?

Кто-нибудь знает, как изменить существующую спецификацию импорта в Microsoft Access 2007 или 2010? В более ранних версиях в качестве мастера импорта использовалась кнопка "Дополнительно", которая позволяла вам выбирать и редактировать существующую спецификацию. Я больше не вижу эту функцию, но надеюсь, что она все еще существует и только что перемещена в другое место.

4b9b3361

Ответ 1

Я могу использовать эту функцию на своей машине с помощью MS Access 2007.

  • На ленте выберите "Внешние данные"
  • Выберите опцию "Текстовый файл"
  • Отображается мастер получения внешних данных
  • Укажите местоположение файла, который вы хотите импортировать
  • Нажмите "ОК". В этом окне отображается "Мастер импорта текста"
  • В нижней части этого диалогового окна находится кнопка "Дополнительно", на которую вы указали
  • Нажатие на эту кнопку должно отображать экран спецификации импорта и позволяет вам выбирать и изменять существующую спецификацию импорта.

Для чего стоит, я использую Access 2007 SP1

Ответ 2

Я не верю, что есть прямой способ. Однако, если вы проиграли, то в настройках навигации выберите, чтобы показывать системные объекты. Затем в вашем списке таблиц появятся системные таблицы. Здесь интересны две таблицы: MSysIMEXspecs и MSysIMEXColumns. Вы сможете редактировать информацию об импорте и экспорте. Удачи!

Ответ 3

Ответ Тима Лентина кажется правдой даже в полном выпуске. Я хотел бы еще упомянуть еще одну вещь.

Если вы заполните свой импорт, не вдаваясь в "Дополнительно..." и сохраняя спецификацию, но сохраните импорт для повторного использования в конце мастера (новая функция AFAIK), вы не сможете вернуться назад и отредактируйте эту спецификацию. Он встроен в "Сохраненный импорт". Это может быть то, о чем говорил Нокс.

Вы можете, однако, выполнить частичную работу:

  • Импортировать новый файл (или тот же самый снова), но
  • На этот раз выберите добавление вместо нового
  • Нажмите "ОК".
  • Перейдите в "advanced". Все заголовки столбцов и типы данных будут там.
  • Теперь вы можете внести необходимые изменения и сохранить спецификацию внутри этого диалогового окна. Затем отмените этот импорт (это не то, что вы хотели в любом случае, не так ли?)
  • Затем вы можете использовать эту спецификацию для дальнейшего импорта. Это не полное решение, но экономит часть работы.

Ответ 4

Ниже приведены три функции, которые вы можете использовать для изменения и использования спецификации импорта MS Access 2010. Третья субменю изменяет имя существующей спецификации импорта. Вторая часть позволяет вам изменить любой текст xml в спецификации импорта. Это полезно, если вам нужно изменить имена столбцов, типы данных, добавить столбцы, изменить расположение файла импорта и т.д. В сущности, все, что вы хотите изменить для существующей спецификации. Первый Sub - это подпрограмма, которая позволяет вам вызывать существующую спецификацию импорта, изменять ее для определенного файла, который вы пытаетесь импортировать, импортировать этот файл и затем удалять измененную спецификацию, сохраняя неизмененный и неповрежденный шаблон импорта. Наслаждайтесь.

Public Sub MyExcelTransfer(myTempTable As String, myPath As String)
On Error GoTo ERR_Handler:
    Dim mySpec As ImportExportSpecification
    Dim myNewSpec As ImportExportSpecification
    Dim x As Integer

    For x = 0 To CurrentProject.ImportExportSpecifications.Count - 1
    If CurrentProject.ImportExportSpecifications.Item(x).Name = "TemporaryImport" Then
        CurrentProject.ImportExportSpecifications.Item("TemporaryImport").Delete
        x = CurrentProject.ImportExportSpecifications.Count
    End If
    Next x
    Set mySpec = CurrentProject.ImportExportSpecifications.Item(myTempTable)
    CurrentProject.ImportExportSpecifications.Add "TemporaryImport", mySpec.XML
    Set myNewSpec = CurrentProject.ImportExportSpecifications.Item("TemporaryImport")

    myNewSpec.XML = Replace(myNewSpec.XML, "\\MyComputer\ChangeThis", myPath)
    myNewSpec.Execute
    myNewSpec.Delete
    Set mySpec = Nothing
    Set myNewSpec = Nothing
    exit_ErrHandler:
    For x = 0 To CurrentProject.ImportExportSpecifications.Count - 1
    If CurrentProject.ImportExportSpecifications.Item(x).Name = "TemporaryImport" Then
        CurrentProject.ImportExportSpecifications.Item("TemporaryImport").Delete
        x = CurrentProject.ImportExportSpecifications.Count
    End If
    Next x
Exit Sub    
ERR_Handler:
    MsgBox Err.Description
    Resume exit_ErrHandler
End Sub

Public Sub fixImportSpecs(myTable As String, strFind As String, strRepl As String)
    Dim mySpec As ImportExportSpecification    
    Set mySpec = CurrentProject.ImportExportSpecifications.Item(myTable)    
    mySpec.XML = Replace(mySpec.XML, strFind, strRepl)
    Set mySpec = Nothing
End Sub


Public Sub MyExcelChangeName(OldName As String, NewName As String)
    Dim mySpec As ImportExportSpecification
    Dim myNewSpec As ImportExportSpecification
    Set mySpec = CurrentProject.ImportExportSpecifications.Item(OldName)    
    CurrentProject.ImportExportSpecifications.Add NewName, mySpec.XML
    mySpec.Delete
    Set mySpec = Nothing
    Set myNewSpec = Nothing
End Sub

Ответ 5

Когда я хочу изучить или изменить спецификацию импорта/экспорта, я запрашиваю таблицы в MS Access, где спецификация определена.

SELECT 
    MSysIMEXSpecs.SpecName,
    MSysIMexColumns.*
FROM 
    MSysIMEXSpecs
    LEFT JOIN MSysIMEXColumns 
    ON MSysIMEXSpecs.SpecID = MSysIMEXColumns.SpecID
WHERE
    SpecName = 'MySpecName'
ORDER BY
    MSysIMEXSpecs.SpecID, MSysIMEXColumns.Start;

Вы также можете использовать инструкцию UPDATE или INSERT для изменения существующих столбцов или вставки и добавления новых столбцов в существующую спецификацию. Вы можете создать совершенно новые спецификации, используя эту методологию.

Ответ 6

Почему так сложно?

Просто проверьте системные объекты в параметрах доступа/Текущая база данных/Параметры навигации/Показать системные объекты

Откройте таблицу "MSysIMEXSpecs" и измените ее в соответствии с вашими потребностями - ее легко читать...

Ответ 7

Ответ Тима Лентина работает, если у вас есть ваши спецификации. В вашем вопросе не указано, что он только заявил, что вы импортировали данные. Его метод не спасет ваши спецификации таким образом.

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

Как только вы находитесь в опции apend, используйте инструкции Tim, в которых используется расширенная опция и "Сохранить как". Оттуда просто нажмите "Отмена", и теперь вы можете импортировать любые другие подобные данные в различные таблицы и т.д.

Ответ 8

Я только что обнаружил явную ошибку во всей сохраненной настройке импорта /XML в Access. Также разочарование в жесткости системы Saved Import, я создал формы и написал код, чтобы выделить XML, в котором хранятся спецификации сохраненного импорта, до такой степени, что я мог бы использовать этот инструмент для фактического создания сохраненного импорта с нуля через кодированные изучение исходной книги Excel.

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

Вы можете попробовать это самостоятельно: импортируйте рабочий лист Excel с по крайней мере одним заголовком столбца, заканчивающимся на "ID" ( "OrderID", "User ID" или просто "ID" ). Во время процесса обязательно установите для параметра "Индексированный" значение "Нет" для этих столбцов. Выполните импорт и установите флажок "Сохранить шаги импорта" в последнем диалоговом окне. Если вы проверите результирующий дизайн таблицы, вы увидите, что в интересующем поле нет указателя. Затем удалите таблицу, найдите сохраненный импорт и выполните его снова. На этот раз эти поля будут установлены как индексированные в дизайне таблицы, хотя XML по-прежнему не имеет индекса.

Я вытягивал свои волосы, пока не обнаружил, что происходит, сравнивая XML, который я построил с нуля, с примерами, созданными с помощью инструмента "Доступ".

Ответ 9

Еще один отличный вариант - бесплатный V-Tools addin для Microsoft Access. Среди других полезных инструментов он имеет форму для редактирования и сохранения спецификаций импорта/экспорта.

введите описание изображения здесь

enter image description here

Примечание. Начиная с версии 1.83 появляется ошибка при перечислении кодовых страниц в Windows 10. (По-видимому, из-за отсутствия/изменения функции API в Windows 10). Инструменты по-прежнему отлично работают, вам просто нужно закомментировать несколько строк кода или пройти мимо него в окне отладки.

Это была реальная спасательная способность для меня при редактировании сложной спецификации импорта для наших онлайн-заказов.