函數OpenExcel(路徑)
dim excel,rs,strsql
出錯時繼續下壹步
設置rs =服務器。CreateObject("ADODB。記錄集”)
設置excel = Server。CreateObject("ADODB。連接”)
excel。open " Driver = { Microsoft Excel Driver(*。xls)};DBQ = " & amp;小路
If Err.number & lt& gt那麽0
回應。寫“請檢查上傳的Excel文件內部格式,文件無法打開,導入失敗!”
回應。結束
如果…就會結束
strsql = " select * from[Sheet1$]" '在此指定工作簿名稱,默認值為sheet 1 $。
設置rs = excel。執行(strsql)
設置OpenExcel = rs
結束功能
讀取文件的內容。
Dim rsInfo
設置rsInfo = Server。CreateObject("ADODB。記錄集”)
Set rsInfo = OpenExcel("E:/a.xls ")'請使用服務器。Path在此獲取文件路徑。
檢查讀數結果。
如果rsInfo。狀態& lt& gt那麽1
回應。寫上“請檢查Excel文件中的工作表是否名為Sheet1。導入失敗!”
回應。結束
如果…就會結束
如果rsInfo。EOF和rsInfo。那就BOF吧
回應。寫“Excel表中沒有找到數據,導入失敗!”
回應。結束
如果…就會結束
If為Null(rsInfo。字段(0))或Trim(rsInfo。Fields(0))= " "那麽
回應。寫“Excel表中沒有找到數據,導入失敗!”
回應。結束
如果…就會結束
在此指定導入數據的列數。如果列數較少,則退出。
如果rsInfo。Fields . Count & lt那就7
回應。寫“Excel表中數據列數不正確。導入失敗!”
回應。結束
如果…就會結束
創建數據庫連接
康涅狄格州dim dbrs,sql
設置conn =服務器。CreateObject("ADODB。連接”)
設置dbrs = Server。CreateObject("ADODB。記錄集”)
註意:G_DB_ConnectString是連接數據庫的字符串,是自己定義的。
連接字符串= G _ DB _連接字符串
打開數據庫連接。
創建臨時表
SQL = " IF EXISTS(SELECT * FROM sysobjects WHERE xtype = ' U ' and name = ' tmp _ PartRes ')"
sql = sql & amp" BEGIN Drop table tmp_PartRes END "
sql = sql & amp"創建表tmp _ PartRes([ID]int identity(1,1),"
sql = sql & amp" PartID varchar(100),Brand varchar(100),[Package] varchar(100),"
sql = sql & amp" BatchNo varchar(100),[Price] varchar(100),[Stock]varchar(100)default(' 0 '),"
sql = sql & amp"簡短varchar(100),StockFlag int default(1),"
sql = sql & amp" SuperFlag int default(1),SaleFlag int default(1)"
連接.執行sql
註意:只取表的結構,不取數據,因為這是我剛創建的臨時表,沒有數據。
如果表中有數據,註意添加條件句,防止獲取數據,如:其中ID = -1。
sql = "SELECT * FROM tmp_PartRes "
Dbrs。“CursorLocation = 3”這必須設置為3。
Dbrs。“打開sql,conn,3,4”此處的參數必須是3和4。
得到表結構後,關閉活動連接和數據庫連接是非常重要的,否則導入速度會非常慢。
設置DBR。ActiveConnection =無
連接關閉
從excel中提取數據,並將數據從Excel放入數據庫表中。
而不是rsInfo。文件結束
If Trim(rsInfo。字段(0))& lt;& gt”“那麽
dbrs。添加新內容
dbrs(" PartID ")= Ucase(Trim(RS info)。字段(0)))
dbrs("Brand") = Trim(rsInfo。字段(1))
dbrs("Package") = Trim(rsInfo。字段(2))
dbrs("BatchNo") = Trim(rsInfo。字段(3))
dbrs("Price") = Trim(rsInfo。字段(4))
If Trim(rsInfo。字段(5))& lt;& gt”“那麽
dbrs("Stock") = Trim(rsInfo。字段(5))
其他
dbrs("股票")= "0 "
如果…就會結束
dbrs("Brief") = Trim(rsInfo。字段(6))
如果…就會結束
rsInfo。下壹步
行
將記錄集更新到數據庫臨時表
控制室,打開,打開連接。
dbrs。主動連接=連接
Dbrs。“UpdateBatch”批量更新功能
更新完成後關閉連接。
dbrs。關閉
設置dbrs =無
rsInfo。關閉
設置rsInfo =無