首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Excel 資料導入 Access 與 SQL Server 完整代碼範例

     編輯:關於SqlServer

導入 Access 資料庫

前提:Access 中已建立目標資料表。

Dim conn, conn2, rs, sql
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\book1.mdb"

Set conn2 = CreateObject("ADODB.Connection")
conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 5.0';Data Source=c:\book1.xls"

sql = "SELECT * FROM [Sheet1$]"
Set rs = conn2.Execute(sql)

Do While Not rs.EOF
    sql = "INSERT INTO xxx ([a],[b],[c],[d]) VALUES ('" & FixSQL(rs(0)) & "','" & FixSQL(rs(1)) & "','" & FixSQL(rs(2)) & "','" & FixSQL(rs(3)) & "')"
    conn.Execute sql
    rs.MoveNext
Loop

conn.Close: Set conn = Nothing
conn2.Close: Set conn2 = Nothing

Function FixSQL(str)
    Dim newStr
    If IsNull(str) Then newStr = "" Else newStr = Replace(str, "'", "''")
    FixSQL = newStr
End Function

導入 SQL Server(同機器,自動建表)

利用 OpenDataSource 直接從 Excel 建立資料表並匯入,第一行作為欄位名。

Dim conn, sql
Set conn = CreateObject("ADODB.Connection")
conn.Open "Driver={SQL Server};Server=localhost;UID=sa;PWD=sa;Database=hwtemp;"

sql = "SELECT * INTO newtable FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data Source=""c:\book1.xls"";User ID=Admin;Password=;Extended Properties=Excel 5.0')...[Sheet1$]"
conn.Execute sql

conn.Close: Set conn = Nothing

跨伺服器導入 SQL Server

若 Excel 檔案與資料庫不在同一台機器,請參考 Access 導入範例,逐行讀取後用參數化查詢寫入 SQL Server,避免權限與路徑問題。

關鍵點提醒

  • Excel 檔案路徑需為伺服器可存取的本地或 UNC 路徑。
  • SQL Server 服務帳戶需具備讀取 Excel 檔案的權限。
  • 大量資料建議使用 BULK INSERT 或 SSIS 以提升效能。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved