Кто-нибудь знает, как изменить существующую спецификацию импорта в Microsoft Access 2007 или 2010? В более ранних версиях в качестве мастера импорта использовалась кнопка "Дополнительно", которая позволяла вам выбирать и редактировать существующую спецификацию. Я больше не вижу эту функцию, но надеюсь, что она все еще существует и только что перемещена в другое место.
Как изменить сохраненную спецификацию импорта Microsoft Access 2007 или 2010?
Ответ 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. Среди других полезных инструментов он имеет форму для редактирования и сохранения спецификаций импорта/экспорта.
Примечание. Начиная с версии 1.83 появляется ошибка при перечислении кодовых страниц в Windows 10. (По-видимому, из-за отсутствия/изменения функции API в Windows 10). Инструменты по-прежнему отлично работают, вам просто нужно закомментировать несколько строк кода или пройти мимо него в окне отладки.
Это была реальная спасательная способность для меня при редактировании сложной спецификации импорта для наших онлайн-заказов.