如題,通過Ado連接excel,獲取excel中“顧客編號”,“顧客姓名”,“銷售金額”三列值,并對“銷售金額”進行匯總。其中“顧客編號”列已設定為文本型別,當“顧客編號”列中出現“0”開頭的值時,得到的顧客編號為空值。請問如何解決?
謝謝~con.Open "provider=Microsoft.Jet.OLEDB.4.0;data source=" & txtPath.Text & ";Extended Properties=""Excel 8.0;hdr=yes;imex=1"""
rs.Open "select 顧客編號,顧客姓名,sum(銷售金額) as 公司程式報單金額 from [sheet1$] group by 顧客編號,顧客姓名 order by 顧客編號", con, 3, 3
uj5u.com熱心網友回復:
腫么沒有人呀
uj5u.com熱心網友回復:
最簡單的方法,顧客編號列不使用純數字,例如在前面加上一個字母 "C"。uj5u.com熱心網友回復:
復雜一點的,在 Excel 檔案同一路徑下放一個 Schema.ini 檔案,宣告各列的型別、長度等屬性。在網上搜一下 Schema.ini 。uj5u.com熱心網友回復:
顧客編號不是固定長度的,如果不對excel做改動,只改VB的代碼有辦法實作嗎?
uj5u.com熱心網友回復:
看來你的顧客編號是數字,在EXCEL中,會自動判斷是那種資料型別,在讀取Excel時,按它的資料型別進行判斷,因此,在VB中會出現錯誤,簡單的方法是在讀取是加一個判斷陳述句:if Excel的顧客編號=0 then rs!顧客編號="0" 應該就可以了
uj5u.com熱心網友回復:
試試改一下"provider=Microsoft.Jet.OLEDB.4.0;data source=" & txtPath.Text & ";Extended Properties=""Excel 8.0;HDR=Yes;IMAX=1"""
如果不行,就只有加 Schema.ini 了。其中要有 MaxScanRows = 0 指定掃描所有記錄。
uj5u.com熱心網友回復:
這招夠“獨”!
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/73736.html
標籤:VB基礎類
