sql >> Databáze >  >> RDS >> Sqlserver

zápis copyfromrecordset do rozsahu

Nejjednodušší může být zahrnout list Excelu jako spojenou tabulku. Například:

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

''Not the best way to get the name
strFile = ActiveWorkbook.FullName

''2007 / 2010 connection
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile _
    & ";Extended Properties=""Excel 12.0 xml;HDR=Yes;"";"

cn.Open strCon

''ODBC Connection for sql server
scn = "[ODBC;DRIVER=SQL Server;SERVER\Instance;" _ 
    & "Trusted_Connection=Yes;DATABASE=Test]"

sSQL = "SELECT a.Stuff, b.ID, b.AText FROM [Sheet5$] a " _
& "INNER JOIN " & scn & ".table_1 b " _             
& "ON a.Stuff = b.AText"
rs.Open sSQL, cn

ActiveWorkbook.Sheets("Sheet7").Cells(1, 1).CopyFromRecordset rs

U všech odkazů na SQL Server si musíte být docela jisti, že pracujete s čistými daty.

Všimněte si, že jsem odkazoval na Cells. Pokud se vám nelíbí myšlenka spojení listu, můžete také odkazovat na buňky a krok, například For i=1 To MaxRows




  1. Počet atributů hledání tváří

  2. Jak snížit duplicitu kódu způsobenou podřetězcem a řetězcem?

  3. ORA-01843 není platný měsíc - Porovnání dat

  4. Jak exportovat data z tabulky Excel do tabulky SQL Server 2008