以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=100163)

--  作者:ltty5200
--  发布时间:2017/5/5 17:28:00
--  [求助]
我有一个窗口,用于设置表A显示那些列。这个窗口上有3个checkbox控件,2个radiobutton控件,1个button控件。
当选择checkbox1时,第一列,第二列,第三列显示,
当选择checkbox2时,第四列,第五列,第六列显示,
当选择checkbox3时,第七列,第八列,第九列显示。
当选择radiobutton1时,第一列,第二列,第三列,第四列,第五列显示,
当选择radiobutton2时,第六列,第七列,第八列,第九列显示。
代码如下:
If chk1.checked=True Then
    Tables("表A").SetColVisibleWidth("第一列|98|第二列|98|第三列|98")
End If
If chk2.checked=True Then
    Tables("表A").SetColVisibleWidth("第四列|98|第五列|98|第六列|98")
End If
If chk3.checked=True Then
    Tables("表A").SetColVisibleWidth("第七列|98|第八列|98|第九列|98")
End If
If Forms("窗口").Controls("RadioButton1").checked=True Then
    Tables("表A").SetColVisibleWidth("第一列|98|第二列|98|第三列|98第四列|98|第五列|98")
End If
If Forms("窗口").Controls("RadioButton2").checked=True Then
    Tables("表A").SetColVisibleWidth("第六列|98第七列|98|第八列|98|第九列|98")
End If
。。。。。。。。。。。。
现在问题来了:
1.当有2个checkbox选中的时候,它只执行最后一个chkbox被选中的代码,而不是两个都执行。比如我同时选中了chkbox1和chkbox2,结果只显示四、五、六列,一、二、三列就不显示。请问该如何修改代码,使所有被选中的chkbox的代码都执行?
2.当我选中radiobutton,点击确定的时候,就出现运行错误,提示“已添加了具有相同键的项”,请问错在哪?

--  作者:有点色
--  发布时间:2017/5/5 17:35:00
--  

代码这样写

 

Dim t As Table = Tables("表A")
For Each c As Col In t.Cols
    c.visible = False
Next
If chk1.checked=True Then
    t.Cols("第一列").visible = True
    t.Cols("第二列").visible = True
End If
If chk2.checked=True Then
    t.Cols("第一列").visible = True
    t.Cols("第五列").visible = True
    t.Cols("第十列").visible = True
End If