各位高手,請教一個問題:
如題,我想用一個ado和mshflexgrid控制元件把c:\documents and settings\admin\成績.xls 中的資料匯出到mshflexgrid中,成績.xls 的第一個表的名稱為sheet1,程式如下:
dim cn as new adodb.connection
dim rs as new adodb.recordset
cn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="c:\documents and settings\admin\成績.xls" ;Extended Properties='Excel8.0;HDR=yes;IMEX=1 '"
rs.open "select * from [sheet1$],cn,adOpenKeyset, adLockOptimistic
set mshflexgrid1.datasource=rs
運行時出現錯誤提示“'Sheet1$'不是一個有效名稱。請確認它不包含無效的字符或標點,且名稱不太長”我的表的名稱是sheet1,怎么會錯呢?另外,我也重新建了一個空excel表,把成績.xls的資料復制到空表中,也不行。請高手分析下原因。
uj5u.com熱心網友回復:
怎么沒人回復啊!死等!uj5u.com熱心網友回復:
首先確認成績.xls中的確有一個Sheet1的頁面,而不是改成其它名稱了。其次SQL陳述句(字串)的結束雙引號哪去了?
rs.open "select * from [sheet1$]",cn,adOpenKeyset, adLockOptimistic
uj5u.com熱心網友回復:
tiger_zhao您好!感謝回復!1、我的成績.xls第一個表格確實是sheet1,后來我新建了一個空excel,把成績.xls的內容復制過去,也還是這個錯誤。
2、"select *from [sheet1$]"后面的“是我在發帖時漏寫了,實際是有的。如果您方便的話,能不能在你的機子上試一下,看是否會出現這個問題,是我的vb有問題還是系統有問題呢.
uj5u.com熱心網友回復:
cn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\book1.xls;Extended Properties='Excel 8.0;HDR=yes;IMEX=1'"
rs.open "select * from [sheet1$]", cn, adOpenKeyset, adLockOptimistic
Debug.Print rs.GetString()
成功
uj5u.com熱心網友回復:
tiger_zhao您好!感謝回復!1、我的成績.xls第一個表格確實是sheet1,后來我新建了一個空excel,把成績.xls的內容復制過去,也還是這個錯誤。
2、"select *from [sheet1$]"后面的“是我在發帖時漏寫了,實際是有的。如果您方便的話,能不能在你的機子上試一下,看是否會出現這個問題,是我的vb有問題還是系統有問題呢.
uj5u.com熱心網友回復:
那問題出在哪呢?我之前系統的system32里面缺失幾個檔案,就安裝了一個msexcl40.dll.會和這個有關嗎?那就是系統有問題吧。
uj5u.com熱心網友回復:
一定要有非“優化”版的系統/軟體進行開發。“優化”的人憑什么肯定某個功能是“無用”的?
uj5u.com熱心網友回復:
這個好像關系不大吧,...精簡系統一般連excel都不裝的.
其實一般只要完整重裝一個2003就好了
建議樓主下一個完整版的office重新裝下excel再看看
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/81877.html
