如何修改保存的Microsoft Access 2007或2010导入规范?

有谁知道如何修改Microsoft Access 2007或2010中现有的导入规范? 在旧版本中,曾经是导入向导期间显示的高级button,允许您select和编辑现有规范。 我不再看到这个function,但希望它仍然存在,并刚刚在其他地方移动。

我可以使用MS Access 2007在我的机器上使用此function。

  • 在function区上,select外部数据
  • select“文本文件”选项
  • 这将显示“获取外部数据向导”
  • 指定您想要导入的文件的位置
  • 点击OK。 这将显示“导入文本向导”
  • 在这个对话框的底部是你引用的高级button
  • 点击此button应显示“导入规格”屏幕,并允许您select和修改现有的导入规格。

对于它的价值,我正在使用Access 2007 SP1

我不相信有一个直接支持的方式。 但是,如果你是绝望的,那么在导航选项下,select显示系统对象。 然后在你的表格列表中,系统表格会出现。 这里有两个表格:MSysIMEXspecs和MSysIMEXColumns。 您将可以编辑导入和导出信息。 祝你好运!

即使在完整版本中, Tim Lentine的答案似乎也是如此。 还有一件事我想提一下。

如果您在不进入“高级…”的情况下完成导入并保存规范,但是在向导结尾保存导入以供重复使用(新functionAFAIK),则无法返回并编辑规范。 它被build成“保存的import”。 这可能是诺克斯所指的。

但是,你可以做一些部分的工作:

  1. 导入一个新的文件(或重新一样)但是,
  2. 这次select追加,而不是做一个新的
  3. 点击OK。
  4. 进入“高级”你所有的列标题和数据types将在那里。
  5. 现在,您可以进行所需的更改并将该规范保存在该对话框中。 然后取消那个import(这不是你想要的,对吗?)
  6. 然后,您可以使用该规范进行进一步的导入。 这不是一个完整的解决scheme,但节省了一些工作。

下面是三个可以用来修改和使用MS Access 2010导入规范的函数。 第三个子部分更改现有导入规范的名称。 第二个子允许您更改导入规范中的任何xml文本。 如果您需要更改列名称,数据types,添加列,更改导入文件位置等,这非常有用。本质上,您希望修改现有规范的任何内容。 第一个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语句来更改现有的列或插入新的列并将其添加到现有规范。 您可以使用此方法创build全新的规范。

为什么这么复杂?

只需在Access选项/当前数据库/导航选项/显示系统对象中检查系统对象

打开表格“MSysIMEXSpecs”并根据您的需求进行更改 – 易于阅读…

Tim Lentine的答案如果你有你的规格保存。 你的问题没有具体说明,只是说你已经导入了数据。 他的方法不会以这种方式保存你的规格。

保存当前导入规格的方法是重新打开导入,点击“apend”,这将允许您使用MS Access获取的当前导入设置。 ( 如果您希望在导入到MS ACCESS之前保留您所处理的Excel格式的导入规格,这将非常有用。

一旦你进入了选项,使用蒂姆的说明,这是使用高级选项和“另存为”。 从那里,只需点击取消,你现在可以导入任何其他类似的数据到各种表格等

我刚刚在Access中的整个保存导入/ XML设置中发现了一个明显的错误。 同样受到Saved Import系统僵化的困扰,我创build了表单,并编写了代码来区分保存的导入规范所存储的XML,直到我可以使用此工具实际上通过编码从头创build一个保存的导入考试源Excel工作簿。

我发现,Access正确地导入一个工作表,每个用户默认设置的修改(例如,它喜欢采取任何列标题名称以“ID”结尾,并使其成为索引字段在但是你可以在导入过程中取消这个),而且它也可以根据用户的改变正确地创buildXML,如果你删除表并使用Saved Import重新导入工作表,它会忽略XML导入规格并返回到使用自己发明的默认值,至less在“ID”列的情况下。

您可以自行尝试:导入至less包含一个以“ID”(“OrderID”,“User ID”或简单“ID”)结尾的列标题名称的Excel工作表。 在此过程中,请确保将“索引”设置为“否”。 执行导入并在最后一个对话窗口中勾选“保存导入步骤”。 如果你检查结果表的devise,你会看到有没有问题的领域索引。 然后删除表,find保存的导入并再次执行。 这次,这些字段将在表格devise中被设置为索引,即使XML仍然没有索引。

我把头发拉出来,直到我发现发生了什么事情,把从头开始构build的XML与通过Access工具创build的例子进行比较。

另一个不错的select是Microsoft Access的免费V-Tools插件。 在其他有用的工具中,它具有编辑和保存导入/导出规格的表单。

在这里输入图像说明

在这里输入图像说明

注意:从版本1.83开始,在Windows 10中枚举代码页会出现一个错误。(显然是由于Windows 10中缺less或改变了API函数)这些工具仍然工作得很好,你只需要注释掉几行代码或在debugging窗口中越过它。

这对于我编辑我们在线订单的复杂import规格来说是一个真正的生活节省。