引用ADO(Microsoft ActiveX Data Objects 2.X Library)
Private Sub Command1_Click()
On Error GoTo err
Dim cn As New ADODB.Connection
'具体的数据库连接请自己改过来
cn.ConnectionString = \"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=123;Initial Catalog=dataBase001;Data Source=mySERVICE\"
cn.CursorLocation = adUseClient
cn.Open
cn.Execute \"select * into NewTable from
OpenRowSet('microsoft.jet.oledb.4.0','Excel
8.0;HDR=Yes;database=c:\\Test.xls;','select * from [Sheet1$]')\"
cn.Close
Set cn=Nothing
Exit Sub
err:
MsgBox err.Description
End Sub
上面的代码是在sql里新建一个表(NewTable),并把Excel的数据导进新表里,如果是把数据插入到已经存在的sql表,可以这样做:
'工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)
Private Sub Command1_Click()
Dim cn As New ADODB.Connection
cn.CursorLocation = adUseClient
cn.Open \"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=\" & App.Path & \"\est.xls;Extended Properties='Excel 8.0;HDR=Yes'\"
'strSQL = \"INSERT INTO [odbc;Driver={SQL Server};Server=服务器IP;Database=数据库;UID=用户名;PWD=密码].SQL中的表名 SELECT EXCEL中的字段 FROM EXCEL工
作表名\"
cn.Execute (\"insert INTO [odbc;Driver={SQL
Server};Server=ljx;Database=test;UID=sa;PWD=].sqlTable select * FROM [Sheet1$]\")
cn.Close
Set cn = Nothing
End Sub
EXCEL文件要设置固定格式,还要设置命名范围,然后才可以导入
大致思路如下:
'// 设置打开 EXCEL 文件的连接字符串
strConn = \"Provider=Microsoft.Jet.OLEDB.4.0;\" & _
\"Data Source=excel文件名;Extended Properties=Excel 8.0\"
'// 以记录集的形式打开 Excel 文件,adoConn 为 ADODB.Connection 对象
adoConn.Open strConn
'// 将数据插入到指定的表中(以ODBC的方式打开SQL数据库)
strSQL = \"INSERT INTO [odbc;Driver={SQL Server};Server=服务器IP;Database=数据库;UID=用户名;PWD=密码].SQL中的表名 SELECT EXCEL中的字段 FROM EXCEL工作表名\"
'// 执行导入语句
adoConn.Execute strSQL, , adExecuteNoRecords