设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 6650|回复: 4
打印 上一主题 下一主题

[模块/函数] 【Access小品】不打开Excel读取标签名

[复制链接]
跳转到指定楼层
1#
发表于 2014-11-27 09:07:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 todaynew 于 2014-11-27 10:27 编辑

  我们用SQL或ADO操作Excel表时,需要指定sheet名称。一般情况下,我们对sheet的名称是已知的。但是,有时候标签名称不确定,或者标签名称是按照某种编码方式产生的。这种情况下,得到标签名称就十分必要了。我们当然可以通过打开Excel表对象,然后遍历sheets来得到标签名称,但这种处理效率较低,也很麻烦。那么是否可以在不打开Excel表的情况下,得到标签名称呢?答案是肯定的。

  由于我们可以将Excel表作为数据源进行连接,因此我们就可以通过这个连接的某些属性得到Excel表所包含的标签(相当于table)。在这个处理中我们需要引用或创建ADOX.Catalog对象,这个对象包含了tables属性,由此得到table以及它的名称。


Function GetSheetName(filepath As String, n As Integer) As String
    '功能:返回标签名称
    '引用:Mocrosoft ADO Ext 2.8 for DDL and Securty
    '参数:filepath--Excel文件名,n--标签序号(从1开始)
    Dim conn As New ADODB.Connection
    Dim cat As New ADOX.Catalog
    Dim sheetname As String
    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filepath & ";Extended Properties=Excel 8.0;"
    conn.Open
    Set cat.ActiveConnection = conn
    sheetname = cat.Tables(n - 1).Name

    conn.Close
    Set cat = Nothing
    Set cnn = Nothing
    GetSheetName = sheetname
End Function

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2014-11-27 09:24:53 | 只看该作者
ADOX啊,好方法

点击这里给我发消息

3#
发表于 2014-11-27 09:33:17 | 只看该作者
不明觉厉,赞一个

点击这里给我发消息

4#
发表于 2014-11-27 11:40:04 | 只看该作者
只有用心吸收..

点击这里给我发消息

5#
发表于 2014-11-27 16:56:38 | 只看该作者
挺不错的方法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-1 19:04 , Processed in 0.106615 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表