2015-04-26 128 views
0

我有代碼從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

由於您希望填充表單中不存在的列,因此請考慮附加查詢而不是TransferSpreadsheet。您可以使用查詢參數來獲取x收穫數據編號)的值。

此示例從工作表Sheet1 $在一個名爲tblDestination表命名temp.xls工作簿和存儲這些數據拉。請注意,源和目標字段名稱可能不同。

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; 
+0

有這樣做的是,它需要在窗體上一個簡單的按鈕點擊的問題。 – user3709645

+1

等等?該簡單的按鈕點擊應該執行該查詢,而不是調用TransferSpreadsheet。 – Gustav

+0

我想我需要重新翻譯,代碼需要允許用戶選擇任何excel spreadhseet(不只是一個特定的文件),然後導入該電子表格的標題爲「收穫_肽數據」,其中_是用戶選擇的數字,將鏈接回不同的電子表格。 _應放置在新列中,以便可以使用其他電子表格的自動編號進行鏈接。希望這有助於更好地解釋。 – user3709645