使用VBA将Excel中数据传入各数据库,拿来即用,持续更新。。。
一、【Sql Server】
背景:将Excel中表aaa的数据插入SqlServer表bbb中。
前期条件,代码运行前需SqlServer中需存在表bbb,否则插入数据失败
代码&讲解:
【单条记录上传】
Dim conn as object
'定义数据库信息,服务器名称、数据库名称、账户&密码等
strConn = "Provider=SQLOLEDB;Data Source=服务器名称;Initial Catalog=数据库名称;User ID=用户名;Password=密码;"
'创建ADO链接
Set conn = CreateObject("ADODB.Connection")
conn.Open strConn '打开链接,以定义的信息打开
strSQL = "INSERT INTO bbb (列1,列2, 列3) VALUES ( '值1' , '值2','值3')" 'SQL赋值
conn.Execute (strSQL) '执行strSQL语句
conn.Close '关闭链接,有始有终
【多条&所有数据上传】
Dim conn as object
arr = ThisWorkbook.Worksheets("aaa").[a1].CurrentRegion
ReDim brr(1 To UBound(arr), 1 To 1)
For i = 2 To UBound(arr)
'构造输入值格式,并存入数组brr
brr(i, 1) = "'" & arr(i, 1) & "','" & arr(i, 2) & "','" & arr(i, 3) & "','"
Next
'定义数据库信息,服务器名称、数据库名称、账户&密码等
strConn = "Provider=SQLOLEDB;Data Source=服务器名称;Initial Catalog=数据库名称;User ID=用户名;Password=密码;"
'创建ADO链接
Set conn = CreateObject("ADODB.Connection")
conn.Open strConn '打开链接,以定义的信息打开
For i = 2 To UBound(arr)
strSQL = "INSERT INTO bbb (列1,列2, 列3) VALUES (" & brr(i, 1) & ")" 'SQL赋值
conn.Execute (strSQL) '执行strSQL语句
Next
conn.Close '关闭链接,有始有终