以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于列隐藏  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=15235)

--  作者:huntkey
--  发布时间:2011/12/17 16:59:00
--  关于列隐藏

Dim t As Table=Tables("Account_Setup_table1")
t.Cols.remove("ID")

 

Table1是窗口表,SQLTABLE

Table1的数据来自Access数据库

我早Table1的Afterload 事件中加入上述代码,目的是想隐藏"ID"列,但是执行后ID列仍然在,怎么回事呢?


--  作者:jianjingmaoyi
--  发布时间:2011/12/17 18:41:00
--  

Dim t As Table=Tables("Account_Setup_table1")
If T.Cols.Contains("id") Then
    t
.Cols.Remove("id"
)
End If

或者

 

T.Cols("id").Visible = False


--  作者:huntkey
--  发布时间:2011/12/17 22:31:00
--  

奇怪?jianjingmaoyi,你的代码放到Doubleclick事件下能得到结果,但是放在Afterload事件下就不行。

怎么回事呢?是不是因为我的ID字段是关键字段哦?


--  作者:狐狸爸爸
--  发布时间:2011/12/18 9:36:00
--  

不会没有效的,除非你在这段代码之后,又重新生成了这个表,例如执行了Load、Fill或者动态增加或者删除了列。

Remove去掉的列,一旦表结构有所变化,又会重新出现。


--  作者:布莱克朱
--  发布时间:2011/12/18 10:01:00
--  
那如果是老大的说法,只能用第二段.
--  作者:huntkey
--  发布时间:2011/12/18 15:15:00
--  

我在窗口表Table1的属性->基本->select语句  中添加了select * from {Card_Set},是不是因为这个造成的哦?


--  作者:布莱克朱
--  发布时间:2011/12/18 16:15:00
--  

不知道你的代码执行是怎么样的,如果是fill加载的,那么你要好好看看,原则上是先执行加载,后执行隐藏.