将列插入导入表

时间:2015-04-26 21:17:07

标签: vba ms-access access-vba

我有代码将Excel中的表导入Access,但我希望能够在表中添加带有标题的列。然后,此列将包含为所有行选择为“x”的数字。这应该由附带的代码解释。

Private Sub Import_Click()

    Dim dlg As Object
    Set dlg = Application.FileDialog(3)
    x = InputBox("Harvest Data Number:")

    With dlg
        .Title = "Select the Excel file to import"
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "Excel Files", "*.xlsx", 1
        .Filters.Add "All Files", "*.*", 2

        If .Show = -1 Then
            StrFileName = .SelectedItems(1)
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "Harvest " & x & " Peptide Data", StrFileName, True, "DENOVO sorted by AMP!A21:Z"
        End If

    End With

End Sub

1 个答案:

答案 0 :(得分:1)

由于您要填充工作表中不存在的列,请考虑附加查询而不是TransferSpreadsheet。您可以使用查询参数来获取 x 的值(收获数据编号)。

此示例来自名为 temp.xls 的工作簿中的 Sheet1 $ ,并将这些数据存储在名为 tblDestination 的表中。请注意,源和目标字段名称可以不同。

INSERT INTO tblDestination ([Harvest Data Number], fld2, fld3, fld4)
SELECT [x] AS [Harvest Data Number], s1.[Seq#], s1.Name, s1.Location
FROM [Excel 8.0;HDR=YES;IMEX=2;DATABASE=C:\SomeFolder\temp.xls].[Sheet1$] AS s1;