excel 資料列為 序號 日期 供應商 其它 客戶 數量 其它1 access 欄位為: 單據編號(主鍵) 日期 供應商 客戶 數量
實作功能:1、將excel資料除序號外匯入到access資料庫 2、單據編號 根據excel的日期在access里查到當天最大的編號加+1,如果沒有就從1開始排
3、單據編號規則為 cw+日期(180828)+4位流水號(0001)
如何操作,請大家指導一下。
uj5u.com熱心網友回復:
基本上兩類方法:1 將 Excel 作為 ADO 資料庫引擎的外部資料庫來訪問,直接通過 SQL 陳述句將表匯入 Access 資料庫。
2 用 Excel 物件打開作業表,逐條記錄插入到用 ADO 物件打開的 Access 資料庫記錄集物件。
uj5u.com熱心網友回復:
方法 1 使用 DAO 的例子(使用 ADO 相仿):需要參考 DAO 或 ADO 物件。
'********************************
'如何將Excel的檔案匯入Access檔案?
'********************************
'呼叫此程序共有四個引數:
'1、sSheetName:要匯出資料的檔案名稱 (Sheet name),例如 Sheet1
'2、sExcelPath:要匯出資料的 Excel 檔案路徑名稱 (Workbook path),例如 C:\book1.xls
'3、sAccessTable:要匯入的 Access Table 名稱,例如 TestTable
'4、sAccessDBPath:要匯入的 Access 檔案路徑名稱,例如 C:\Test.mdb
'程序宣告:
Private Sub ExportExcelSheetToAccess(sSheetName As String, sExcelPath As String, sAccessTable As String, sAccessDBPath As String)
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase(sExcelPath, True, False, "Excel 5.0")
Call db.Execute("Select * into [;database=" & sAccessDBPath & "]." & sAccessTable & " FROM [" & sSheetName & "$]")
MsgBox "Table exported successfully.", vbInformation, "Yams"
End Sub
'使用范例如下:將 C:\book1.xls 中的 Sheet1 匯入 C:\Test.mdb 成為 TestTable
'ExportExcelSheetToAccess "Sheet1", "C:\book1.xls", "TestTable", "C:\Test.mdb"
uj5u.com熱心網友回復:
ADO 對 Excel 的連接字串:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
HDR 表示有列標題行
IMEX 表示文本數字混合列作為文本列處理
uj5u.com熱心網友回復:
我現在可以匯入到一張臨時表里,但如何重新編號再匯入到正式的表中呢?uj5u.com熱心網友回復:
你把臨時表名改成正式表名就可以了。如果你的正式表有自動編號欄位的話,會為每一條新紀錄自動分配一個編號。uj5u.com熱心網友回復:
謝謝!
uj5u.com熱心網友回復:
謝謝專家,收藏了。最近準備研究一下用EXCEL匯入ACCESS,很有用uj5u.com熱心網友回復:
匯入access后如果重新編號?uj5u.com熱心網友回復:
excel導access最好的辦法就是呼叫access應用物件. 相當于你在access中選擇匯入excel表, 無論速度還是準確度都遠超其他任何手段.
是"其他任何手段",沒有之一(相比打開excel物件讀資料再用資料庫鏈接寫access要快一個數量級).
大家最常用的可能是參考excel物件, 但是access應用也可以在vb中參考.
具體方法自行右上角吧.
uj5u.com熱心網友回復:
前段時間寫的一個小程式,提供思路給你參考:匯入資料時,只取表格中需要的資料。至于要應付不同的欄位排列的表格也可隨時靈活調整對應關系即可。本想上傳軟體截圖,但不知道今天咱回事,一直上傳不了圖片。只能簡單描述解決思路了。
uj5u.com熱心網友回復:
剛說了1,沒說2,3。依你描述,需要編號是連號的嗎?如果是連號,好辦啊,直接在最大號上+1;沒有當天的資料,則從1開始編號,就搞定了。
不連號,直接以特征碼+毫秒級時間為編號,就行了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/43648.html
標籤:VB基礎類
上一篇:有誰可以幫忙發一個offiemalscanner工具么
下一篇:電腦什么都不運行,都會卡死
