DAO打开XLS如何获得所有的工作表

来源:百度知道 编辑:UC知道 时间:2024/05/28 05:37:38
在VB中,我能用DAO打开一个EXCEL,但我不清楚如何获得打开的XLS文件的工作表数量及名称,
通常是打开第一个 Data1.RecordSource = "sheet1$"
但我想打让用户选择所需打开的工作表该如何做
例如我的工作表名是:“生产计划$”,我如何知道这个名称!
急啊!!!
谢谢楼下的回答,但并不是我想要的结果
我想要的是
例如:d:\数据.xls"中有三个工作表,分别为"1、2、3"
,我如何得到1、2、3这三个工作表的名称,因为EXCEL的默认工作表名称是sheet1、sheet2、sheet3,但我想处理的工作表名并不是这个。

希望有人来回答,我马上就要发分了。

Microsoft.Jet.OLEDB.4.0好像不支持Excel,你可以用DAO来访问
首先需要引用Microsoft DAO 3.6 Object Library
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Set DB = OpenDatabase("d:\数据.xls", False, False, "Excel 8.0;")
Set RS = DB.OpenRecordset("文件$")
Set DataGrid1.DataSource = RS
找不到可插入的ISAM的好像就是不支持这种数据格式,
--抱歉,刚看了一下,Datagrid只支持ado的datasource,你如果非要用控件绑定的话,你可以Miscrosoft FlexGrid,它可以绑定dao的datasource

如果你只是为了显示,我建议你可以不用绑定的方式,在Form上放一个ListView控件,然后在ListView属性中把查看方式改成lvReport,增加列首(标题)和Excel的列一一对应。代码如下

Dim DB As DAO.Database
Dim RS As DAO.Recordset
Set DB = OpenDatabase("d:\数据.xls", False, False, "Excel 8.0;")
Set RS = DB.OpenRecordset("文件$")
Dim li As ListItem
ListView1.ListItems.Clear
Do Until RS.EOF
Set li = ListView1.ListItems.Add(, , (RS(0))
For i = 1 To RS.Fields.Count - 1
li.SubItems(i) = RS(i)
Next
RS.M