2008-09-27 3 views
34

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

+0

Еще один полезный элемент, удаленный офисом 2007 – Brettski 2008-09-27 22:34:05

ответ

33

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

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

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

13

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

+0

Эти таблицы не редактируются пользователем. Их можно редактировать только через Jet. – 2008-09-27 22:54:10

+2

David, я могу редактировать обе таблицы MSysIMEXColumns и MSysIMExSpecs для присвоения имен и изменения типов. Я не проверен мною и, очевидно, не поддерживается, но они доступны для редактирования. – Knox 2008-09-28 00:18:48

+0

Это должно быть что-то, что изменилось в A2K7, поскольку у меня нет версии Access, которая позволяет мне непосредственно редактировать их (A97, A2K2, A2K3). – 2008-09-29 23:34:21

6

Tim Lentine's answer кажется, чтобы быть правдой, даже в полном освобождении. Есть еще одна вещь, которую я хотел бы упомянуть.

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

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

  1. Импорт нового файла (или же один снова и снова), но
  2. На этот раз решили добавить, вместо того, чтобы новый
  3. Нажмите OK.
  4. Перейдите в «расширенный». Все заголовки столбцов и типы данных будут там.
  5. Теперь вы можете внести необходимые изменения и сохранить спецификацию в этом диалоговом окне. Затем отмените этот импорт (это не то, что вы хотели в любом случае, верно?)
  6. Затем вы можете использовать эту спецификацию для дальнейшего импорта. Это не полное решение, но экономит часть работы.
+0

Также смотрите: http://luke.gedeon.name/blog/2009/05/edit-saved-import-steps-access-2007-partial-workaround.html – waanders 2011-01-19 15:50:12

5

Ниже перечислены три функции, которые можно использовать для изменения и использования спецификации импорта 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 
2

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

1

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

Просто проверьте системных объектов в Access-Options/Current Database/Навигация Options/Show System Objects

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

0

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

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

После того, как вы в опции apend, используйте инструкцию Тима, который с помощью расширенный вариант и «Сохранить как». Оттуда просто нажмите «Отмена», и теперь вы можете импортировать любые другие подобные данные в разные таблицы и т. Д.

0

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

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

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

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

0

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

enter image description here

enter image description here

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

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

Смежные вопросы