1.在MDI窗体上不能使用控件,需要用一个容器来放控件,比如使用pictureBox控件来当做容器,这时真能体会到巨人的力量,这时我查到了另外一种方法。用一个窗体做容器,把这些控件放到窗体上,前提是要把窗体设置为子窗体,把borderstype 设置为none,然后在MDI窗体加载的时候,子窗体也同时加载。地址连接。
2.DataGrid和MSFleGrid的区别
VB 提供了 4 种网格控件
DataGrid 支持ADODC控件和记录集设计时/运行时绑定,支持ADO
msFlexGrid 支持Data控件设计时只读绑定,仅支持DAO
msHFlexGrid 支持ADODC控件和记录集设计时/运行时只读绑定,支持ADO
前两个支持全屏编辑。同时,它们是面向记录集的,定位、操作都通过记录集。
后两个支持丰富的显示功能,可以合并单元格、设置行、列、单元格的颜色。同时,它们是面向单元格的,可以通过行、列号对显示数据进行访问。
我的错误出现在mrc.close
加上mrc.update
就好了。
4.如何给MSFlexGrid1的列添加空值
当我们想给其中的列从数据库中赋值时,就可能会出现“无效使用NULL”的错误,这时我只需要跳过这条语句的赋值就可以了:
On Error Resume Next
5.机房导出Excel时,出现“部件要求挂起”
巨人的力量真是伟大的,这样节省了好多的时间!这个错误是vb使用兼容性造成的。
vb属性——兼容性——以兼容模式运行这个程序,将勾去掉即可。
6.导出Excel,出现“不是一个合法的控件名”
(1)这时因为我们传递参数时,参数不正确造成的。我在调用时是这样赋值参数的
Call ExportToExcel(Me,MSFlexGrid1) 'ExportToExcel是自定义函数的名字
第一个参数是窗体,它是一个对象,第二参数是一个字符串类型的数据,而我这里写的是控件的名称,它是一个字符串,跟对象有所不同,它需要用双引号括起来。改成如下,就可以正确调用了。
CallExportToExcel(Me,"MSFlexGrid1")
(2)第二种解决办法:这样我们可以将这条语句改一下,不需要用到controls方法;不过前提是你要正确书写控件的名称。我是从MSFlexGrid导出数据的,使用了它的默认名称,所以我的语句为:with FormName.MSFlexGrid1 。这样做可以减少一个参数;但是需要控件的名字一致。