几天前就完成了第一遍的机房验收,虽然师父还是没有给我过,但从中我也学到了很多东西。机房收费系统的成长可谓是在错误中成长,下面我就说说我从中遇到的一些问题。
一、不将就:ComboBox
这个控件我们在学生信息管理系统和机房收费系统里运用得非常广泛,大家都知道到把它的style属性设置为2的时候就能够实现不可输入,但是我们在查询的那几个窗体里有“清空”那个命令按钮,开始我以为把语句写成comboBox1.text=""就行了,可是我没想到,问题来了,出现“text只读属性”这个错误,于是我上网找了一下,把语句写成comboBox1.clear就可是实现清除,而且可以避免“text只读属性”。但是,问题还是又来了,当我点了“清空”按钮,comboBox这会是真的彻彻底底的清空了,在它的下拉栏里就真的没有东西了。必须得把窗体关了再开才有内容。这完全就没有全心全意为人民服务的理念。于是我苦思冥想,找到刘炳楷同学的一篇博客,看到他那写了一点关于这个控件的一些东西,于是我就去找他。在他的帮助下,我又懂得了一些东西。加载窗体的时候我有这样的一段代码:
With cmbField1
.AddItem "教师" .AddItem "注册日期" .AddItem "注册时间" .AddItem "注销日期" .AddItem "注销时间" .AddItem "机器名" End With开始我还真的只知道additem这个方法也就只是给comboBox加载一些内容,但是后面上网查了才知道,这个方法的具体语法是这样的object.AddItem item,index,后面可以加个索引,有了这个索引就可以做好多东西了,世界就顿时简单了,我在.AddItem“教师”添个“,1”当我要用到这个东西的时候,我就用.ListIndex=1就行了。所以我就在这段代码里加上这么一句
With cmbField1 .AddItem "教师" .AddItem "注册日期" .AddItem "注册时间" .AddItem "注销日期" .AddItem "注销时间" .AddItem "机器名" <span style="white-space:pre"> </span>.AddItem " ",6 End With
也就是在下拉栏里再加个空行,把这空行赋值给索引6,然后在“清空”按钮下写上
cmdfield1.ListIndex=6
</pre><p><span style="font-size:32px"><strong>二、不允许空值</strong></span></p><p><img src="https://img-blog.csdn.net/20140904185710201?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXllODk0ODE3NTcx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" /></p><span style="font-size:24px">要把信息写入表中,然后更新表,但是很不巧的正好有个字段不允许空值,开始以为加上个trim就行了,可还是不行,只能网上找答案了。把trim(mrc.field(0))改写成这样的语句就行了</span><pre name="code" class="html" style="font-size: 24px;">IIf(IsNull(mrc.Fields(0).Value),"",mrc.Fields(0).Value)
三、数据库问题
暑假结束,机房的电脑都被还原为机房模式,也就意味着东西没了,我把自己建的数据库给导出来了,是.sql格式的。因为我见学生信息管理系统的那个数据库就是这样的格式。可是当我把它放在我电脑上的数据库里出了这样的错
可是为什么学生那个就没错呢?后面才发现人家的语句是这样子的。
看到了吗,人家那是用数据库里的系统数据库master建student数据库,而我那根本就没有那句话。看来我数据库这块还是得再加把劲啊。
问题当然不只这些,只是这些问题给我留下了比较深刻的映像,所以还是把它写下来了。成长在于总结,经验在于积累,并不是别人比你聪明,而是别人先比你经历了这些事,先掌握了解决问题的技巧。蓦然回首,机房收费系统 也就这么一回事,还是加快步伐前进吧。