Как изменить сохраненную спецификацию импорта Microsoft Access 2007 или 2010?
кто-нибудь знает, как изменить существующую спецификацию импорта в Microsoft Access 2007 или 2010? В более старых версиях в Мастере импорта была кнопка Дополнительно, которая позволяла выбрать и изменить существующую спецификацию. Я больше не вижу эту функцию, но надеюсь, что она все еще существует и только что была перемещена куда-то еще.
9 ответов
Я могу использовать эту функцию на своей машине с помощью MS Access 2007.
- на ленте выберите внешние данные
- выберите опцию "текстовый файл"
- отображается мастер получения внешних данных
- укажите местоположение файла, который вы хотите импортировать
- нажмите OK. Отобразится "мастер импорта текста"
- в нижней части этого диалогового окна находится кнопка Дополнительно, на которую вы ссылались
- нажатие на эту кнопку должно отображать экран спецификации импорта и позволяет выбрать и изменить существующую спецификацию импорта.
для чего это стоит, я использую Access 2007 SP1
Я не верю, что есть прямой способ. Тем не менее, если вы desparate, то в разделе параметры навигации выберите, чтобы показать системные объекты. Затем в списке таблиц появятся системные таблицы. Здесь представляют интерес две таблицы: MSysIMEXspecs и MSysIMEXColumns. Вы сможете редактировать информацию об импорте и экспорте. Удачи!
ответ Тима Лентайна кажется верным даже в полной версии. Есть только одна вещь, которую я хотел бы упомянуть.
Если вы завершите импорт, не входя в "дополнительно"..."и сохранение спецификации, но вы сохраняете импорт для повторного использования в конце мастера (новая функция AFAIK), вы не сможете вернуться и отредактировать эту спецификацию. Он встроен в"сохраненный импорт". Возможно, именно это имел в виду Нокс.
вы можете, однако, сделать частично обойти:
- импортируйте новый файл (или тот же самый), но,
- на этот раз выберите Добавить, вместо того, чтобы сделать новый
- нажмите OK.
- перейдите в "дополнительно", все ваши заголовки столбцов и типы данных будут там.
- теперь вы можете внести необходимые изменения и сохранить спецификацию в этом диалоговом окне. Затем отмените этот импорт (это не то, что вы хотели в любом случае, верно?)
- вы можете использовать это спецификации для любого дальнейшего импорта. Это не полное решение, но экономит часть работы.
Ниже приведены три функции, которые можно использовать для изменения и использования спецификации импорта 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
когда я хочу изучить или изменить спецификацию импорта / экспорта, я запрашиваю таблицы в 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 для изменения существующих столбцов или вставки и добавления новых столбцов к существующей спецификации. С помощью этой методологии можно создать совершенно новые спецификации.
Почему так сложно?
просто проверьте системные объекты в Access-Options / текущая база данных / параметры навигации / показать системные объекты
откройте таблицу "MSysIMEXSpecs" и изменить в соответствии с вашими потребностями - его легко читать...
еще один отличный вариант-это бесплатные V-Tools addin для Microsoft Access. Среди других полезных инструментов он имеет форму для редактирования и сохранения спецификаций импорта/экспорта.
Примечание: начиная с версии 1.83, существует ошибка в перечислении кодовых страниц в Windows 10. (По-видимому, из-за отсутствующей/измененной функции API в Windows 10) инструменты по-прежнему отлично работают, вам просто нужно прокомментируйте несколько строк кода или пройдите мимо него в окне отладки.
Это была реальная жизнь-saver для меня в редактировании сложной спецификации импорта для наших онлайн-заказов.
Тим Lentine работает, если у вас есть ваши характеристики сохранены. В вашем вопросе это не указано, в нем указано только, что вы импортировали данные. Его метод не спасет ваши спецификации таким образом.
способ сохранить спецификацию этого текущего импорта-повторно открыть импорт, нажать "apend", и это позволит вам использовать ваши текущие настройки импорта, которые MS Access подобрал. (это полезно, если вы хотите сохранить спецификации импорта из формата Excel, над которым вы работали до импорта в MS ACCESS.)
Как только вы находитесь в опции apend, используйте инструкции Тима, который использует расширенную опцию и "сохранить как."Оттуда просто нажмите "Отмена", и теперь вы можете импортировать любые другие подобные данные в различные таблицы и т. д.
Я только что обнаружил очевидную ошибку во всей сохраненной настройке импорта / XML в Access. Также разочарованный жесткостью сохраненной системы импорта, я создал формы и написал код, чтобы выделить XML, в котором хранятся сохраненные спецификации импорта, до такой степени, что я мог бы использовать этот инструмент для создания сохраненного импорта с нуля с помощью кодированного изучения исходной книги Excel.
Что я узнал, что, хотя доступ к корректно импортирует листа в модификации по умолчанию настройки пользователем (например, он любит взять любой столбец с заголовком названия, заканчивающиеся на "ID" и сделать его индексированного поля в результирующей таблице, но вы не можете отменить во время процесса импорта), а также правильно формирует XML в соответствии для пользователя изменения, если вы затем удалить таблицу и использовать сохраненный импорт, чтобы импортировать таблицу, он игнорирует XML импорт спецификации и возвращается обратно, используя свои придуманные значения по умолчанию, по крайней мере, в случае с "ИД" столбцы.
вы можете попробовать это самостоятельно: импортируйте лист Excel с хотя бы одним именем заголовка столбца, заканчивающимся на "ID" ("OrderID", "User ID" или просто "ID"). Во время процесса обязательно установите для этих столбцов значение "Indexed" в значение "No". Выполните импорт и установите флажок "сохранить шаги импорта" в последнем диалоговом окне. Если вы проверите результирующий дизайн таблицы, вы увидите, что в рассматриваемом поле(полях) нет индекса. Затем удалите таблицу, найдите сохраненный импорт и выполните его снова. На этот раз эти поля будут установлены как индексированные в дизайне таблицы, хотя XML по-прежнему не говорит об индексе.
я вытаскивал волосы, пока не обнаружил, что происходит, сравнивая XML, который я создал с нуля, с примерами, созданными с помощью инструмента доступа.