我有一些VBA代码可以创建一个新的空白表,我想要做的是导入一个excel表,将第一行作为字段名称,然后将其余的工作表导入为我的字段中的值。
我是否需要预先设定字段名称才能生效?
Private Sub Command11_Click()
Dim FilePath As String
FilePath = OpenFile()
'Create Temp Table
DoCmd.RunSQL ("CREATE TABLE Temp_Import_Table")
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Temp_Import_Table", FilePath, False
DoCmd.RunSQL ("DROP TABLE Temp_Import_table")
MsgBox (FilePath)
End Sub
答案 0 :(得分:0)
TransferSpreadSheet命令有一个参数HasFieldName。如果将其设置为true,则第一行将用作字段名
点击此处MSDN, VBA TransferSpreadSheet,或点击google上的第一个主题,搜索传输表格,或者在文字transferSreadSheet上的VBAEditor中点击F1
答案 1 :(得分:0)
您不需要事先创建表架构,如果已经存在,TransferSpreadsheet将为您创建表格。如果将HasFieldNames指定为True,则Excel中的字段名称将作为字段标题导入。如果需要,您可以在运行TransferSpreadsheet之前检查表是否存在,如果存在则将其删除。
如果您确实希望表先存在,则可以将电子表格传输一次而不删除它并保留该表架构。如果你不在代码中删除它,它将是持久的,并且后续调用TransferSpreadsheet(假设数据适合该结构)应该将数据附加到该表。在这种情况下,您需要先清除表中的数据。