2011-05-23 248 views
0

我们经常使用一些Excel文件作为数据库中大量导入的数据源。在代码层面上,我们总是指为相应的数据源:通过Microsoft OLE DB提供程序使用EXCEL作为数据源

set rs = New ADODB.recordset 
rs.open "SELECT * FROM [sheet1$]", myConnectionString, etc 

当然,这个过程时,有一个在被命名为[工作表Sheet1] Excel文件的纸张只适用。我想在这里添加一些工作表管理代码,但不必创建原始Excel文件的实例,打开它,等等(我的用户可能会得到具有不同工作表名称的文件,并且可能没有安装Excel )。

有什么想法?

回答

2

您可以使用ADO OpenSchema方法打开记录集,然后列出工作簿中的表(表格)名称。

Public Sub SheetsInWorkbook() 
    Dim strConnect As String 
    Dim cn As Object 
    Dim rs As Object 
    Dim strPath As String 

    strPath = CurrentProject.Path & Chr(92) & "temp.xls" 
    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" _ 
     & "Data Source='" & strPath & "';" _ 
     & "Extended Properties='Excel 8.0';" 
    Set cn = CreateObject("ADODB.Connection") 
    cn.ConnectionString = strConnect 
    cn.Open 
    Set rs = cn.OpenSchema(20) '20 = adSchemaTables ' 
    Debug.Print "TABLE_NAME" 
    Do While Not rs.EOF 
     Debug.Print rs!TABLE_NAME 
     rs.MoveNext 
    Loop 

    rs.Close 
    Set rs = Nothing 
    cn.Close 
    Set cn = Nothing 
End Sub 
+0

竖起大拇指给HansUp!谢谢! – 2011-05-24 06:09:44

+0

我希望这比自动化Excel更有效率,以打开电子表格并检查工作簿中第一张工作表的名称,这是我一直这样做的。 – 2011-05-28 23:55:22

相关问题