机房收费系统颗粒大归仓之----调错冰山一角(二)

            一、多步OLE操作产生错误的多种形式

错误如图:

啊

问题形式:

(1)写入数据库的数据长度超过数据库设计时定义字段的长度,例如数据库定义字段长度为10,而我输入的数据长度为12就会报这种错。

(2)数据库需要的数据含有非法的特殊字符,例如空格、“-”等等。用户名有空格或者特殊字符。如下图:

啊

这是因为我写入数据时多了一个空格导致数据库无法识别。

解决方法:添加信息长度不能长于数据库中定义长度,导入数据库中的数据不要包含非法字符,如果出错了请认真检查。

拓展:SQL语句中的空格问题的确不容小觑,如

txt


上图多了空格依然报错。


              二、MDI与子窗体的那些事儿

(1)子窗体显示被Picture控件挡住

情况描述:大家都知道MDI窗体上不能直接添加控件,解决方案为先添加picturebox,然后在picture上添加控件。之后发现添加picturbox后,子窗体显示时会被picturebox遮挡。
原因分析:因为MDI是子窗体的父窗体,子窗体显示出来默认是紧挨着父窗体的,亲儿子嘛!

解决方案:使用API函数:SetParent, 就是为窗体设置一个新父窗体,为它找一个新爹。

首先在模块中声明:
Private Declare Function SetParent Lib"user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

发现:这个函数有两个参数,分别是hWndChild(子窗体句柄)和hWndNewParent( 父窗体的句柄)。具体实现代码如下:


啊啊

解释:子窗体句柄就是frmRegister,父窗体句柄为Picture1.

(2)打开新子窗体,上一窗体最小化
下面就来实现显示新的子窗体时,让上一个窗体自动最小化:

啊啊

说明:ZOrder属性的作用是将指定的 窗体或控件放置在其图层的z-顺序的前端或后端,其他图片中代码注释已经很详细了,原理不再赘述。

(3)MDI子窗体居中显示

情况描述:MDI子窗体无法设置StartUpposition属性,会有如下提示:

提示

解决方案:在form_Load事件中编写如下代码:
    Me.Top = (Screen.Height - Me.Height) / 3 - Me.Top
    Me.Left = (Screen.Width - Me.Width) / 2 - Me.Left


            三、更改数据表信息提示不允许更改

情况如图:

啊啊

原因分析:数据库设置问题

解决方案:数据库界面点击选项----->设计器----->表和数据库设计器,把如下图所示“阻止更改前的勾去掉”即可。

啊啊


后续更新更精彩,欢迎来我的CSDN做客!


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值