Ms-Access

EXCEL表格批量輸入Access

  • August 16, 2011

我有很多 Excel 數據表(在一個文件中)

我想批量輸入到 Access

但我找不到執行此操作的範常式式碼

access中數據表的名稱與excel中的相同

有沒有VBscript的程式碼可以做到這一點?

也許在訪問或excel vba中?

或者任何簡單的軟體?

我會使用SSIS來做到這一點。嘗試以下步驟:

  • 我將首先創建一個對像變數來儲存數據表的名稱
  • 然後我會創建一個 VB 任務來提取電子表格的名稱並將結果放入對像變數中
  • 然後創建一個使用對像變數作為集合的 foreach 循環
  • 創建另一個變數並以目前工作表的名稱折騰
  • 在使用目前工作表作為數據源的循環內添加數據流任務
  • 將您的訪問表添加為您的目的地。

這是可用於提取 excel 元數據的 VB 腳本。您需要從 foreach 循環中輸入變數才能使其正常工作。

  Public Overrides Sub CreateNewOutputRows()

   Dim excelFilePath As String = Me.Variables.ExcelFilePath.ToString()
   Dim strCn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
           "Data Source=" + excelFilePath + ";Extended Properties=Excel 8.0"
   Dim dtTables As DataTable
   Dim tableName As String

   Dim cn As OleDbConnection = New OleDbConnection(strCn)
   cn.Open()
   dtTables = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)

   For Each row As DataRow In dtTables.Rows
       tableName = row("TABLE_NAME").ToString()

       OutputBuffer.AddRow()
       OutputBuffer.EXCELFILEPATH = excelFilePath
       OutputBuffer.TABLENAME = tableName

   Next

   cn.Close()
   OutputBuffer.SetEndOfRowset()
End Sub

這有點棘手,但非常可行。祝你好運。

引用自:https://dba.stackexchange.com/questions/3554