gpt4 book ai didi

ms-access - 如何为保存的 Excel 导入指定不同的文件路径

转载 作者:行者123 更新时间:2023-12-02 03:45:15 27 4
gpt4 key购买 nike

因此,我多次使用 doCmd.TransferText 来使用保存的文本导入规范,因为您可以轻松保存从 Application.FileDialog(msoFileDialogFilePicker) 返回的文件路径 查找并选择您希望使用保存的规范导入的文件。

但是,我无法找到对 Excel 文件执行相同操作的方法,保存 Excel 导入规范很简单,但使用 DoCmd.TransferSpreadSheet 方法无法使用保存的导入以及使用 doCmd.RunSavedImportExport 没有指定文件路径的选项。

除了使用不同的文件类型(例如 .csv)之外,还有其他解决办法吗

最佳答案

Access 中的“已保存导入”和“已保存导出”存储在形成 CurrentProject.ImportExportSpecifications 集合的 ImportExportSpecification 对象中。保存的 Excel 导入的详细信息类似于以下 XML,它是我通过手动导入 Excel 电子表格并勾选导入向导最后一页上的“保存导入步骤”复选框而创建的。

<?xml version="1.0" encoding="utf-8" ?>
<ImportExportSpecification Path = "C:\Users\Gord\Desktop\xlsxTest.xlsx" xmlns="urn:www.microsoft.com/office/access/imexspec">
<ImportExcel FirstRowHasNames="true" Destination="xlsxTest" Range="Sheet1$" >
<Columns PrimaryKey="ID">
<Column Name="Col1" FieldName="ID" Indexed="YESNODUPLICATES" SkipColumn="false" DataType="Long" />
<Column Name="Col2" FieldName="TextField" Indexed="NO" SkipColumn="false" DataType="Text" />
<Column Name="Col3" FieldName="DateField" Indexed="NO" SkipColumn="false" DataType="DateTime" />
</Columns>
</ImportExcel>
</ImportExportSpecification>

ImportExportSpecification 已使用名称 Import-xlsxTest 保存。现在,如果我将 Excel 文件从“xlsxTest.xlsx”重命名为“anotherTest.xlsx”,我可以使用以下 VBA 代码更改 ImportExportSpecification 的 XML 中的文件名,然后执行导入:

Option Compare Database
Option Explicit

Sub DoExcelImport()
Dim ies As ImportExportSpecification, i As Long, oldXML() As String, newXML As String

Const newXlsxFileSpec = "C:\Users\Gord\Desktop\anotherTest.xlsx" ' for testing

Set ies = CurrentProject.ImportExportSpecifications("Import-xlsxTest")
oldXML = Split(ies.XML, vbCrLf, -1, vbBinaryCompare)
newXML = ""
For i = 0 To UBound(oldXML)
If i = 1 Then
' re-write the second line of the existing XML
newXML = newXML & _
"<ImportExportSpecification Path = """ & _
newXlsxFileSpec & _
""" xmlns=""urn:www.microsoft.com/office/access/imexspec"">" & _
vbCrLf
Else
newXML = newXML & oldXML(i) & vbCrLf
End If
Next
ies.XML = newXML
ies.Execute
Set ies = Nothing
End Sub

有关 ImportExportSpecification 对象的更多信息,请参阅

ImportExportSpecification Object (Access)

关于ms-access - 如何为保存的 Excel 导入指定不同的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23350640/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com