返回列表 上一主題 發帖

[發問] VBA 用SQL 一次新增多筆資料至EXCEL的方法

回復 1# PKKO


    剛好有看過一篇,但未曾實踐過,你可以試試
https://support.microsoft.com/en ... nto-microsoft-excel

TOP

本帖最後由 lpk187 於 2017-2-19 20:20 編輯

用這個例子吧!1萬筆資料約3秒。這個insert into 的用法
匯入資料,不一定得用SQL語句
  1. Public Sub ex()
  2.     sql = "SELECT * FROM TblStudent ;"
  3.     strSqlInstance = "伺服器名稱"
  4.     strSqlDB = "資料庫名稱"
  5.     strSqlUser = "sa"
  6.     strSqlPWD = "a123456"
  7.     sConnect = "Provider=SQLOLEDB"
  8.     sConnect = sConnect & ";Data Source=" & strSqlInstance & ";Initial Catalog=" & strSqlDB
  9.     sConnect = sConnect & ";User ID=" & strSqlUser & ";Password=" & strSqlPWD & ";"
  10.     Set myCon = CreateObject("ADODB.Connection")
  11.     myCon.Open sConnect
  12.     Set rng = Range("A2")
  13.     With New ADODB.Recordset
  14.         .Open sql, myCon, , adLockOptimistic
  15.         Do Until rng = ""
  16.             .AddNew
  17.             For i = 1 To .Fields.Count - 1
  18.                 .Fields(i) = rng.Offset(, i - 1)
  19.             Next
  20.             Set rng = rng.Offset(1, 0)
  21.         Loop
  22.         .Update
  23.     End With
  24.     Set myRs = Nothing
  25.     myCon.Close
  26.     Set myCon = Nothing
  27. End Sub
複製代碼
回復 6# PKKO

TOP

回復 8# PKKO


    在microsoft的文檔中有提到,在 [連線] 索引標籤上,瀏覽至活頁簿檔案。請忽略「使用者 ID」和「密碼」項目,因為它們不會套用至 Excel 連線 (您無法開啟具有密碼保護的 Excel 檔案做為資料來源。
https://support.microsoft.com/zh ... visual-basic-or-vba

所以只有無密碼保護的execl檔才能做為資料來源!

TOP

        靜思自在 : 一個人不怕錯,就怕不改過,改過並不難。
返回列表 上一主題