一、多步OLE操作产生错误的多种形式
错误如图:
问题形式:
(1)写入数据库的数据长度超过数据库设计时定义字段的长度,例如数据库定义字段长度为10,而我输入的数据长度为12就会报这种错。
(2)数据库需要的数据含有非法的特殊字符,例如空格、“-”等等。用户名有空格或者特殊字符。如下图:
这是因为我写入数据时多了一个空格导致数据库无法识别。
解决方法:添加信息长度不能长于数据库中定义长度,导入数据库中的数据不要包含非法字符,如果出错了请认真检查。
拓展:SQL语句中的空格问题的确不容小觑,如
上图多了空格依然报错。
二、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
三、更改数据表信息提示不允许更改
情况如图:
原因分析:数据库设置问题
解决方案:数据库界面点击选项----->设计器----->表和数据库设计器,把如下图所示“阻止更改前的勾去掉”即可。
后续更新更精彩,欢迎来我的优快云做客!