设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 如何用VBA隐藏数据表窗体上的列?

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2004-1-16 20:31:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个数据表视图的窗体,需要用VBA方法隐藏其中的几个列,不知是否有方法?
谢谢各位。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-1-16 20:47:00 | 只看该作者
用工具栏的按钮不行?再说用代码隐藏了,操作员可以恢复啊。
3#
发表于 2004-1-16 20:49:00 | 只看该作者
用代码的方法我以前看到过,不过现在不知放到哪去了,晕~~

不知是否可以用  子窗体!字段名.visible=false

[此贴子已经被作者于2004-1-16 12:50:07编辑过]

点击这里给我发消息

4#
 楼主| 发表于 2004-1-16 21:30:00 | 只看该作者
好像不行,这种方法在数据表视图中仍然可以出现。

点击这里给我发消息

5#
 楼主| 发表于 2004-1-16 21:52:00 | 只看该作者
本题已解决:(帮助里的。)

ColumnHidden 属性
参阅应用于示例特性使用 ColumnHidden 属性可以在“数据表”视图中显示或隐藏指定的列。Boolean 型,可读写。

expression.ColumnHidden
expression      必需。返回“应用于”列表中的一个对象的表达式。

设置
在“数据表”视图中单击“格式”菜单上的“隐藏列”或“取消隐藏列”即可设置 ColumnHidden 属性。

在 Microsoft Access 数据库 (.mdb) 中,通过在 Visual Basic 中使用 Long Interger 值指定下列设置,也可以设置该属性:

设置 说明
True    隐藏列。
False    (默认值)列可见。


注释  若要使用 Visual Basic 来设置或更改表或查询的这一属性,必须使用列的 Properties 集合。有关使用 Properties 集合的详细信息,请参阅 Properties。

注释  ColumnHidden 属性在“设计”视图中不可用。

说明
例如,如果“客户地址”字段太宽,隐藏该字段便于查看“客户名称”和“电话号码”字段。

注释  ColumnHidden 属性适用于“数据表”视图中所有的字段,并且当窗体处于“数据表”视图时,还适用于窗体控件。

在“数据表”视图中使用 ColumnHidden 属性隐藏列,并不隐藏“窗体”视图中同一列的字段。同样,在“窗体”视图中将控件的 Visible 属性设为 False,也不会隐藏“数据表”视图中对应的列。

即使字段的列在表的“数据表”视图中是隐藏的,仍然可以在查询中显示该字段。

即使应用了筛选后列仍然是隐藏的,照样可以将隐藏列中的值用作筛选的标准。

不能使用“编辑”菜单上的“复制”、“粘贴”、“查找”和“替换”来影响隐藏的字段。

将字段的 ColumnWidth 属性设为 0,或在“数据表”视图中将字段宽度调整为零,会使 Microsoft Access 将相应的 ColumnHidden 属性设为 True。取消隐藏列将使 ColumnWidth 属性还原为字段隐藏前的值。

示例
以下示例隐藏“产品”窗体“数据表”视图中的“产品ID”字段。

Forms!Products!ProductID.ColumnHidden = -1
               
下一个示例还隐藏“产品”表的“数据表”视图中的“产品ID”字段。

Public Sub SetColumnHidden()

    Dim dbs As DAO.Database
    Dim fld As DAO.Field
    Dim prp As DAO.Property
    Const conErrPropertyNotFound = 3270

    ' Turn off error trapping.
    On Error Resume Next

    Set dbs = CurrentDb
   
    ' Set field property.
    Set fld = dbs.TableDefs!Products.Fields!ProductID
    fld.Properties("ColumnHidden") = True
   
    ' Error may have occurred when value was set.
    If Err.Number <> 0 Then
        If Err.Number <> conErrPropertyNotFound Then
            On Error GoTo 0
            MsgBox "Couldn't set property 'ColumnHidden' " & _
                   "on field '" & fld.Name & "'", vbCritical
        Else
            On Error GoTo 0
            Set prp = fld.CreateProperty("ColumnHidden", dbLong, True)
            fld.Properties.Append prp
        End If
    End If
   
    Set prp = Nothing
    Set fld = Nothing
    Set dbs = Nothing
   
End Sub

点击这里给我发消息

6#
发表于 2004-1-17 08:18:00 | 只看该作者
1.DoCmd.RunCommand acCmdHideColumns
2.窗体名.字段名.columnhidden=true
7#
发表于 2009-12-5 09:10:51 | 只看该作者
非常的感谢哦!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-18 22:42 , Processed in 0.091430 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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