从MS excel输入数据到空白访问表

时间:2014-06-20 12:26:58

标签: vba ms-access

我有一些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

2 个答案:

答案 0 :(得分:0)

TransferSpreadSheet命令有一个参数HasFieldName。如果将其设置为true,则第一行将用作字段名

点击此处MSDN, VBA TransferSpreadSheet,或点击google上的第一个主题,搜索传输表格,或者在文字transferSreadSheet上的VBAEditor中点击F1

答案 1 :(得分:0)

您不需要事先创建表架构,如果已经存在,TransferSpreadsheet将为您创建表格。如果将HasFieldNames指定为True,则Excel中的字段名称将作为字段标题导入。如果需要,您可以在运行TransferSpreadsheet之前检查表是否存在,如果存在则将其删除。

如果您确实希望表先存在,则可以将电子表格传输一次而不删除它并保留该表架构。如果你不在代码中删除它,它将是持久的,并且后续调用TransferSpreadsheet(假设数据适合该结构)应该将数据附加到该表。在这种情况下,您需要先清除表中的数据。