视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ToimportdatafromexceltoDB
2020-11-09 07:20:56 责编:小采
文档


Here,I introducesome methods to import data from excel to DB, 1 By OPENDATASOURCE SELECT * FROM OPENDATASOURCE ( 'Microsoft.Jet.OLEDB.4.0' , 'Excel 8.0;DataBase=D:/TEST.xls' )...[sheet1$] Note: Sometimes, error message will occor when exec

Here,I introduce some methods to import data from excel to DB,

1 By OPENDATASOURCE

SELECT
* FROM OPENDATASOURCE(
'Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;DataBase=D:/TEST.xls')...[sheet1$]

Note: Sometimes, error message will occor when executing above script like this:
Msg 15281, Level 16, State 1, Line 1
SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online.

The solution issetting Ad Hoc Distributed Queries to 1,you can refer to my post: http://www.cnblogs.com/Burgess/archive/2008/09/24/1298195.html


2 By Linked server

EXEC sp_addlinkedserver --add linked server
@server = N'MyExcel',
@srvproduct = N'Jet 4.0',
@provider = N'Microsoft.Jet.OLEDB.4.0',
@datasrc = N'd:/TEST.xls',
@provstr = N'Excel 8.0'
GO

Note:You can also add linked server by below method:

exec sp_addlinkedsrvlogin 'MyExcel','false' --login without account (Optional)
go

select * from MyExcel...sheet1$ --query data
go

3 By VBA

Code
1Private Sub cmdInsert_Click()Sub cmdInsert_Click()
2
3 Dim LinCnt As Integer
4 LinCnt = 6
5 If InputBox("Please input password1", "口令输入框", , 8700, 4700) = "password" Then
6 Rows("6:6").Select
7 Rows("6:65536").Select
8 Range("A6").Select
9
10 Connection.Open " Provider=SQLOLEDB.1;Persist Security Info=True;User ID=User_id;Password=PWD; Initial Catalog=DB_name;Data Source=Server_ip;Connect Timeout=60 "
11 Connection.CursorLocation = adUseClient
12 CMD.ActiveConnection = Connection
13
14 Do While Cells(LinCnt, "C") <> ""
15 If txtSoldto.Text = "" And txtQcimat.Text = "" And Cells(LinCnt, "G") = "" Then
16 MsgBox "Please maintain "
17 Exit Sub
18 Else
19 SQLstmt = " insert into table_name values('" & VBA.Trim(txt1.Text) & "','" & VBA.Trim(txt2.Text) & "','" & Cells(LinCnt, "C") & "','" & Cells(LinCnt, "D") & "','" & Cells(LinCnt, "E") & "','" & Cells(LinCnt, "F") & "','" & Cells(LinCnt, "G") & "','" & Cells(LinCnt, "H") & "','" & Cells(LinCnt, "I") & "','" & Cells(LinCnt, "J") & "') "
20 CMD.CommandText = SQLstmt
21 CMD.Execute
22 LinCnt = LinCnt + 1
23 End If
24 Loop
25 Connection.Close
26 Exit Sub
27 Else
28 MsgBox "You have no right to insert!"
29 Exit Sub
30 End If
31End Sub


4 By SQL Server Import and Export Wizard
Detailed oprating steps is abbreviated here.

5 Other methods:
Please refer to http://support.microsoft.com/default.aspx/kb/321686

下载本文
显示全文
专题