当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何修改已保存的MicrosoftAccess2007或2010导入规范?》经验,为你挑选了4个好方法。

有谁知道如何修改Microsoft Access 2007或2010中的现有导入规范?在旧版本中,导入向导期间出现了一个高级按钮,允许您选择和编辑现有规范.我不再看到这个功能,但希望它仍然存在,并且刚刚移动到其他地方.



1> Tim Lentine..:

我可以使用MS Access 2007在我的机器上使用此功能.

在功能区上,选择"外部数据"

选择"文本文件"选项

这将显示"获取外部数据向导"

指定要导入的文件的位置

单击确定.这将显示"导入文本向导"

在此对话框屏幕的底部是您引用的"高级"按钮

单击此按钮应显示"导入规范"屏幕,并允许您选择和修改现有导入规范.

值得一提的是,我正在使用Access 2007 SP1



2> Knox..:

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


您*可以使用Access 2007及更早版本中的查询编辑MSysIMEXColumns和MSysIMEXSpecs表.尝试这样的事情:UPDATE MSysIMEXColumns SET FieldName ="LastName"WHERE FieldName ="Field4"AND SpecID = 5
大卫,我可以编辑MSysIMEXColumns和MSysIMExSpecs表来命名字段和更改类型.没有经过我的广泛测试,显然没有支持,但它们是可编辑的.
先生,您今天赢得了互联网.非常感谢你的提示!! 我正试图找到遗留访问数据库的方法,如果没有这个,那么进口数据需要更长的时间!再次感谢!!

3> 小智..:

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

如果您完成导入而不进入"高级..."并保存规范,但您确实在导向结束时保存导入以供重复使用(新功能AFAIK),您将无法返回并编辑规范.它内置于"已保存的导入"中.这可能是诺克斯所指的.

但是,您可以进行部分解决:

    导入一个新文件(或重新导入同一个文件),但是,

    这次选择追加,而不是制作新的

    单击确定.

    进入"高级"所有列标题和数据类型都将存在.

    现在,您可以进行所需的更改并将规范保存在该对话框中.然后取消导入(这不是你想要的,对吧?)

    然后,您可以将该规范用于任何进一步的导入.它不是一个完整的解决方案,但可以节省一些工作.



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

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有