2017-05-24 12 views
-2

私はExcelで大量のデータをSQL Serverにアップロードする必要がありますが、フロントエンドとしてアクセスしています。 Excelの列数は約90、レコード数は700,000を超えますAccess Vbaを使用してExcelデータをSQLにアップロードする方法

+0

はStackOverflowのへようこそ。 https://stackoverflow.com/help/how-to-askを読んで、さらに詳しい情報で質問を改善してください。何を試してみましたか、うまくいかないなど –

+0

SQL Server Management Studioをダウンロードし、OPENROWSETを使用してアクセスOLEDBプロバイダの助けを借りてファイルをクエリします。 – PacoDePaco

+0

こんにちはPawel、以下のコードを試しましたが、 "Match"関数を使用しているのでエラーまたはオブジェクトが見つかりません。 SQL列を使用するExcelデータの最初のチェック列 col = 0の場合.Fields.count - 1 index = xlApp.Application.Match(.Fields(col).Name、sourceRange.Rows(2)、0) Ifインデックス0>次に exportFieldsCount = exportFieldsCount + 1 tableFields(exportFieldsCount)= col rangeFields(exportFieldsCount)= index End If Next レコードセットにデータを追加します。 しかし、Recordset.UpdateBatchも機能していません –

答えて

0

私はちょうど約1時間前にこのような質問に答えました。

Sub Button_Click() 
'TRUSTED CONNECTION 
    On Error GoTo errH 

    Dim con As New ADODB.Connection 
    Dim rs As New ADODB.Recordset 
    Dim strPath As String 
    Dim intImportRow As Integer 
    Dim strFirstName, strLastName As String 

    Dim server, username, password, table, database As String 


    With Sheets("Sheet1") 

      server = .TextBox1.Text 
      table = .TextBox4.Text 
      database = .TextBox5.Text 


      If con.State <> 1 Then 

       con.Open "Provider=SQLOLEDB;Data Source=" & server & ";Initial Catalog=" & database & ";Integrated Security=SSPI;" 
       'con.Open 

      End If 
      'this is the TRUSTED connection string 

      Set rs.ActiveConnection = con 

      'delete all records first if checkbox checked 
      If .CheckBox1 Then 
       con.Execute "delete from tbl_demo" 
      End If 

      'set first row with records to import 
      'you could also just loop thru a range if you want. 
      intImportRow = 10 

      Do Until .Cells(intImportRow, 1) = "" 
       strFirstName = .Cells(intImportRow, 1) 
       strLastName = .Cells(intImportRow, 2) 

       'insert row into database 
       con.Execute "insert into tbl_demo (firstname, lastname) values ('" & strFirstName & "', '" & strLastName & "')" 

       intImportRow = intImportRow + 1 
      Loop 

      MsgBox "Done importing", vbInformation 

      con.Close 
      Set con = Nothing 

    End With 

Exit Sub 

errH: 
    MsgBox Err.Description 
End Sub 

enter image description here また、これらのリンクをチェックしてください。

https://www.excel-sql-server.com/excel-sql-server-import-export-using-vba.htm

http://tomaslind.net/2013/12/26/export-data-excel-to-sql-server/

関連する問題