完整代碼如下
<%
On Error Resume Next
導入Excel電子表格數據到SQL Sever數據庫 By Dicky
:
:
Function Open_Conn(SqlDatabaseName
SqlPassword
SqlUsername
SqlLocalName
SqlConn)
創建數據庫連接對象並打開數據庫連接
Dim ConnStr
SQL Server數據庫連接參數
數據庫名
用戶密碼
用戶名
連接名(本地用local
外地用IP)
ConnStr =
Provider=Sqloledb; User ID=
& SqlUsername &
; Password=
& SqlPassword &
; Initial Catalog =
& SqlDatabaseName &
; Data Source=
& SqlLocalName &
;
Set SqlConn = Server
CreateObject(
ADODB
Connection
)
SqlConn
Open ConnStr
If Err Then
Err
Clear
Set SqlConn = Nothing
Response
Write
數據連接錯誤!
Response
End
End If
End Function
Function Close_Conn(SqlConn)
關閉數據庫連接並清除數據庫連接對象
If IsObject(SqlConn) Then
SqlConn
Close
Set SqlConn = Nothing
End If
End Function
Call Open_Conn(
Shat_EDG
sa
(local)
SqlConn)
打開本地SQL Server數據庫連接
Call Open_Conn(
Shat_EDG
sa
ssh
SqlConn
)
打開遠程SQL Server數據庫連接
Function Get_EMP_CnName(NTACCNT)
根據用戶NT帳號得到用戶中文名
Dim Sql
Rs
Sql
=
Select EMP_CNAME From RF_EMPLOYEE Where EMP_NTACCNT=
&NTACCNT&
Set Rs
= Server
CreateObject(
Adodb
RecordSet
)
Rs
Open Sql
SqlConn
If Rs
Eof Then
Get_EMP_CnName =
Else
Get_EMP_CnName = Rs
(
EMP_CNAME
)
End If
Rs
Close
Set Rs
= Nothing
End Function %>
<html>
<head>
<title>導入Excel電子表格數據到SQL Sever數據庫</title>
<body bgcolor=
#ACD
AF
>
<center><b>導入Excel電子表格數據到SQL Sever數據庫</b></center>
<FORM METHOD=
POST
name=
form
>
請選擇數據源(本地庫):
<SELECT NAME=
Table
title=
請選擇需要導入數據的表
>
<option></option>
<% Dim RsSqlDatabaseTable
Set RsSqlDatabaseTable = SqlConn
OpenSchema(
)
Do While Not RsSqlDatabaseTable
Eof %>
<option<%If Trim(Request(
Table
))=RsSqlDatabaseTable(
) Then Response
Write
selected
%>><%=RsSqlDatabaseTable(
)%></option>
<% RsSqlDatabaseTable
MoveNext:Loop
Set RsSqlDatabaseTable = Nothing %>
</SELECT><input type=submit name=submit value=
開始導出
>
<br>請選擇目標表(遠程庫):
<SELECT NAME=
Table
title=
請選擇需要導入數據的表
>
<option></option>
<% Dim RsSqlDatabaseTable
Set RsSqlDatabaseTable
= SqlConn
OpenSchema(
)
Do While Not RsSqlDatabaseTable
Eof %>
<option<%If Trim(Request(
Table
))=RsSqlDatabaseTable
(
) Then Response
Write
selected
%>><%=RsSqlDatabaseTable
(
)%></option>
<% RsSqlDatabaseTable
MoveNext:Loop
Set RsSqlDatabaseTable
= Nothing %>
</SELECT>
</FORM>
<font color=blue>導出過程中請不要刷新頁面!</font><br>
<%
If Trim(Request(
Table
)) <>
Then
Dim Sql
Rs
Sql =
Select * From Sheet
$
Sheet
$是我們實現用SQL Server自身數據轉換功能得到的表名
Set Rs = SqlConn
Execute(Sql)
If Rs
Eof And Rs
Bof Then
Response
write
沒有找到您需要的數據!!<br>
Else
Do While Not Rs
Eof
SqlInsert =
Insert Into
&Trim(Request(
Table
))&
(EDG_Project_Name
EDG_Project_No
EDG_Project_VM
EDG_Project_VM_CnName
EDG_Project_M
EDG_Project_M_CnName
EDG_Project_Director
EDG_Project_Director_CnName) Values (
&Trim(Rs(
工程名稱
))&
&Trim(Rs(
工程編號
))&
&Trim(Rs(
項目副理
))&
&Trim(Rs(
項目副理
))&
(
&Get_EMP_CnName(Trim(Rs(
項目副理
)))&
)
&
&Trim(Rs(
項目經理
))&
&Trim(Rs(
項目經理
))&
(
&Get_EMP_CnName(Trim(Rs(
項目經理
)))&
)
&
&Trim(Rs(
項目總監
))&
&Trim(Rs(
項目總監
))&
(
&Get_EMP_CnName(Trim(Rs(
項目總監
)))&
)
&
)
Response
Write SqlInsert
此處插入的值根據實際數據庫結構進行調整
SqlConn
Execute(SqlInsert)
插入Excel表格裏所有東東
Rs
MoveNext
Loop
Response
Write
<font color=red>恭喜
成功導出數據!^_^</font><br>
End If
Rs
Close
Set Rs = Nothing
End If
Call Close_Conn(SqlConn)
關閉Excel數據庫連接
Call Close_Conn(SqlConn
)
關閉SQL Server數據庫連接 %>
</body>
</html>
From:http://tw.wingwit.com/Article/program/net/201311/12903.html