已有21人关注
DataGrid控件隐藏列的问题
发表在VB答疑区 2008-03-22
是否精华
版块置顶:
<DIV style="FONT-SIZE: 12px">老师:您们好!</DIV>
<DIV style="FONT-SIZE: 12px">&nbsp;&nbsp;&nbsp; 学习了您们出版的《VB控件大全》之后,知道DataGrid控件可以隐藏列,但是我<FONT color=#2222dd size=4>现在不是直接隐藏某一列,而是要通过判断数据表中的某一字段是否是全空,如果是才将显示该字段的列隐藏</FONT>。</DIV>
<DIV style="FONT-SIZE: 12px">用这样判断一个字段就正确了:<BR>&nbsp;&nbsp;&nbsp; For k = 1 To Adodc2.Recordset.RecordCount<BR>&nbsp; &nbsp; If IsNull(Adodc2.Recordset.Fields("clde1")) Then<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;Adodc2.Recordset.MoveNext<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;a = k<BR>&nbsp; &nbsp; Else<BR>&nbsp; &nbsp;&nbsp; &nbsp; Exit For<BR>&nbsp; &nbsp; End If<BR>&nbsp; &nbsp; Next<BR>&nbsp; &nbsp;&nbsp; &nbsp; If a = Adodc2.Recordset.RecordCount Then<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;DataGrid1.Columns(3).Visible = False<BR>&nbsp; &nbsp;&nbsp; &nbsp; End If<BR></DIV>
<DIV style="FONT-SIZE: 12px">但是用这样的循环判断从某一个字段开始至某一字段结束又不行了,如下:<BR>&nbsp; &nbsp;For k = 6 To 16<BR>&nbsp; &nbsp; For i = 1 To Adodc2.Recordset.RecordCount<BR>&nbsp; &nbsp; If IsNull(Adodc2.Recordset.Fields(k)) Then<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;Adodc2.Recordset.MoveNext<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;j = i<BR>&nbsp;&nbsp;&nbsp; Else<BR>&nbsp; &nbsp;&nbsp; &nbsp; Exit For<BR>&nbsp; &nbsp; End If<BR>&nbsp; &nbsp; Next<BR>&nbsp; &nbsp;&nbsp; &nbsp; If j = Adodc2.Recordset.RecordCount Then<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;DataGrid1.Columns(k - 3).Visible = False<BR>&nbsp; &nbsp;&nbsp; &nbsp; End If<BR>&nbsp; &nbsp;Next</DIV>
<DIV style="FONT-SIZE: 12px">&nbsp;</DIV>
<DIV style="FONT-SIZE: 12px">&nbsp;&nbsp; 请老师指导指导,谢谢!!!</DIV>
分享到:
精彩评论 3
vbsoldier
学分:0 LV1
2008-03-23
沙发
您好:您的代码只是判断最后一条记录中某个字段是否为空,当为空时隐藏某列。而不是判断所有记录的某字段是否为空。
rjl0663
学分:0 LV1
2008-03-25
板凳
<P>老师,您说我的代码只判断最后一条记录是否这空,但是为什么</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;For&nbsp;k&nbsp;=&nbsp;1&nbsp;To&nbsp;Adodc2.Recordset.RecordCount <BR>&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;IsNull(Adodc2.Recordset.Fields("clde1"))&nbsp;Then <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adodc2.Recordset.MoveNext <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;=&nbsp;k&nbsp;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; debug.print a<BR>&nbsp;&nbsp;&nbsp;&nbsp;Else <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;For <BR>&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If <BR>&nbsp;&nbsp;&nbsp;&nbsp;Next <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;a&nbsp;=&nbsp;Adodc2.Recordset.RecordCount&nbsp;Then <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGrid1.Columns(3).Visible&nbsp;=&nbsp;False <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If&nbsp;<BR><BR>&nbsp;如果字段全为空,这一句&nbsp;debug.print a却能正确从1打印到总的记录数?那您的意思该如何写呢?请明示好吗?谢谢!!!<BR></P>
rjl0663
学分:0 LV1
2008-04-30
地板
<P>解决了.</P>
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照