作者:乔山办公网日期:
返回目录:excel表格制作
Sub 把Excel数据插入数据库中()
'*******************************************
'时间:2010-06-28
'作者:bengdeng
'功能:把当前工作表的数据增加到在程序文件同一目e799bee5baa6e997aee7ad94e78988e69d83334录下进销存表数据库中
'注意:要在工具/引用中引用microsoft activex date objects x.x
' 其中x.x为版本号,可能会因为你安装的office的版本不同而不同,本例引用了2.5版
'发布:http://
'*******************************************
Dim conn As ADODB.Connection
Dim WN As String
Dim TableName As String
Dim sSql As String
Dim tStr As String
'数据库名,请自行修改,路径与当前工作簿在同一目录
WN = "进销存表.mdb"
'数据库的表名与当前工作表名一致
TableName = ActiveSheet.Name
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;" & _
"Extended Properties=Excel 8.0;" & _
"Data Source=" & ThisWorkbook.Path & "\" & ActiveWorkbook.Name
conn.Open
If conn.State = adStateOpen Then
sSql = "Insert Into [;DataBase=" & ActiveWorkbook.Path & "\" & WN & "]." & TableName & " Select * From [" & ActiveSheet.Name & "$]"
conn.Execute sSql
MsgBox "成功把数据插入到“" & TableName & "”中!", , "http://excelba.com"
conn.Close
End If
Set conn = Nothing
End Sub
sub test()
Set cnn = CreateObject("ADODB.Connection")
Set rs = CreateObject("Adodb.Recordset")strCn= "Provider=sqloledb;Server=R9HDET7;Database=dbname;Uid=username;Pwd=password"
cnn.Open strCn
SQL = ""
cnn.Open strCn '与数据库抄建立连接,如果成功,返回连接对象cn
rs.Open SQL , cn '执行strSQL所含的SQL命令,结果保袭存在rs记录集对象中
cnn.Close
Set cnn = Nothing
end sub
请参考
连接数据库后,通过写SQL语句实现增删zd改查
使用copysqlserver的导入功能。
sqlserver2008系统,登录ssms,在数据库上右健,任务-->导入,百可以打开导入的引导界面。
如果只度是一个表的数据,也可以在excel上复知制数据,然后在ssms里打道开表,粘贴数据。
你在EXCEL中增加一个列名为ID,后在VBA中写以下代码,并引用Microsoft ActiveX Data Objects 2.8后执行
Public Sub 写入SQL2008()
Dim cnn As New ADODB.Connection
Dim SQL As String, mydata As String, mytable As String
Dim i%
mydata = "KKKK" '指定要修改的数据库
mytable = "aaaa" '指定数据表
'建立与e5a48de588b67a64364指定SQL Server数据库的连接
cnn.ConnectionString = "Provider=SQLOLEDB;" _
& "User ID=sa;" _ 'sa改成你SQL账号(通常不用改)
& "Password =123;" _ '123改成你SQL2008密码
& "Data Source=sowin;" _ 'sowin改成你的SQL2008的电脑名,
'如sql2008在网络上,则sowin改成IP地址(如192.168.0.1)
& "Initial Catalog =" & mydata
cnn.Open
'查询全表某些字段的记录
for i = 2 to [a65536].end(xlup).row
SQL = "UPDATE " & mytable & " SET x=" & cells(i,1) & "," & _
"y=" & cells(i,2) & "," & _
"z=" & cells(i,3) & "," & _
"where id=11"
next i
'注意引号里面的空格
'数据库没有更新的数据则用INSERT INTO
'SQL = "INSERT INTO " & mytable & " COLUMNS(x,y,z)" & _
" VALUES('" & CELLS(i,1) & "','" & cells(i,2) & "','" & cells(i,3) &"')"
cnn.Execute(SQL)
cnn.Close
Set cnn = Nothing
End Sub