-2
私はExcelで大量のデータをSQL Serverにアップロードする必要がありますが、フロントエンドとしてアクセスしています。 Excelの列数は約90、レコード数は700,000を超えますAccess Vbaを使用してExcelデータをSQLにアップロードする方法
私はExcelで大量のデータをSQL Serverにアップロードする必要がありますが、フロントエンドとしてアクセスしています。 Excelの列数は約90、レコード数は700,000を超えますAccess Vbaを使用してExcelデータをSQLにアップロードする方法
私はちょうど約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
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/
はStackOverflowのへようこそ。 https://stackoverflow.com/help/how-to-askを読んで、さらに詳しい情報で質問を改善してください。何を試してみましたか、うまくいかないなど –
SQL Server Management Studioをダウンロードし、OPENROWSETを使用してアクセスOLEDBプロバイダの助けを借りてファイルをクエリします。 – PacoDePaco
こんにちは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も機能していません –