关闭

机房注册窗体之错误一实时错误'-2147217873(80040e2f)

426人阅读 评论(16) 收藏 举报
分类:

             

         是的,错误又来了,你没看错,其实今天写的这篇博客还有一段小小的曲折心理斗争,因为这个注册窗体出现了这个错误,高兴的是自己也是可以解决问题的,但是纠结的是自己到底要不要将这个错误写出来呢?其实自己内心最真实的想法是——一万个不想写,加上这个错误已经有人写过了,所以就更不想写了。BUT转念一想,这不就是学习的乐趣所在吗——痛并快乐着!哈哈哈!

        当然之所以决定写这篇博客还是因为自己应当要有一颗one for all  , all  for one的心,自己怎么就知道自己写的博客就一定没有用处呢?说不定自己的理解又可以给他人带来一个新的理解呢,谁知道呢。所以我还是写吧!

              

         第一个错误是这个:实时错误'-2147217873(80040e2f)具体的如下图所示:




      出现这个问题是在自己在注册窗体的信息都填写好以后单击存盘的时候所出现的错误,而出现这个问题的原因就是因为我们的注册窗体所对应的数据表中的数据类型我们所设置的是不允许有NULL值。所以当我们点击存盘时因为有的值是空的所以与所设置的类型有冲突,因此就报错了。

       解决方法很简单,直接打开数据库——找到所对应的student_info表——然后找到所对应的列——右击——修改——找到允许NULL值并将其改为这样就可以了,当然如果不知道到底是要改某一具体列的属性,咱可以将所有列的都改成允许NULL。这样它就老实了。


        话说不要高兴的太早了,虽然按照上面的步骤可以将问题解决,但是咱们当咱们注册成功了以后,单击打开student_info 表进行查看的时候发现在最后几列里出现了好几个NULL,虽然不影响操作吧,但是这个看起来还是和上面的有点格格不入的感觉。所以为了不显得太过于有个性咱还是低调点,跟着主流走吧。在解决前咱还是看看这个比较有个性的行到底是个啥样的吧。诺!就长下面最后一行这个样子:




        看起来是不是很有个性,放心我们是会解决的,俗话说的好兵来将挡水来土掩嘛,下面就让我们一起来解决,具体操作如下:这个在注册窗体没有直接的显示,只是通过代码直接来实现首先让我们来看看操作前的代码是什么样的


 mrc.AddNew
               mrc.Fields(0) = Trim(txtCardID.Text)
               mrc.Fields(1) = Trim(txtRecharge.Text)
               mrc.Fields(2) = Trim(txtSID.Text)
               mrc.Fields(3) = Trim(txtName.Text)
               mrc.Fields(4) = Trim(txtComboSex.Text)
               mrc.Fields(5) = Trim(txtDepartment.Text)
               mrc.Fields(6) = Trim(txtGrade.Text)
               mrc.Fields(7) = Trim(TxtClass.Text)
               mrc.Fields(8) = Trim(txtComboState.Text)
               mrc.Fields(9) = Trim(txtMoney.Text)
               mrc.Fields(10) = Trim(txtNote.Text)
               mrc.Fields(11) = Trim(txtComboType.Text)
               
               mrc.Update

现在让我们来看看优化了以后的结果是什么代码部分是什么样的


mrc.AddNew
               mrc.Fields(0) = Trim(txtCardID.Text)                                '今天才知道原来mrc.Fields(0)中的数字就是所在表的具体列,如mrc.Fields(0)表示将数据存入student_info表的第0列中
               mrc.Fields(1) = Trim(txtRecharge.Text)
               mrc.Fields(2) = Trim(txtSID.Text)
               mrc.Fields(3) = Trim(txtName.Text)
               mrc.Fields(4) = Trim(txtComboSex.Text)
               mrc.Fields(5) = Trim(txtDepartment.Text)
               mrc.Fields(6) = Trim(txtGrade.Text)
               mrc.Fields(7) = Trim(TxtClass.Text)
               mrc.Fields(8) = Trim(txtComboState.Text)
               mrc.Fields(9) = Trim(txtMoney.Text)
               mrc.Fields(10) = Trim(txtNote.Text)
               mrc.Fields(11) = Trim(txtComboType.Text)
            
                mrc.Fields(12) = Date                                        '以下三行在窗体上没有显现,但是是对数据库中的所对应的列当内容空时让其不显示NULL
               mrc.Fields(13) = Time
               mrc.Fields(14) = Trim(txtComboType.Text)


         没错就是加了最后三句代码就解决了问题当然这里还有一个小插曲,至于是什么大家可以试试,因为会有惊喜的。

         总之今天这个算不上分享的分享希望还是可以帮到您。理解有偏颇的地方热忱的欢迎大家指正大家一起讨论,一起进步。

              

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:11661次
    • 积分:3057
    • 等级:
    • 排名:第12670名
    • 原创:50篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1061条
    最新评论