最近又做了一些程序,对vb的认识也深入了许多。
其中对MDI窗体以及DataGrid、MSFlexGrid的使用上有些体会。其中MDI窗体是一个主窗体,对其操作用Picturebox来实现,这样可以在MDI 窗体上添加更多的控件,比如word那种的上面是菜单,下面还有按钮的就可以这样实现。在各个窗体之间的调用时要注意控件的调用位置,也就是说在使用with的时候在控件前要加上那个控件所在的窗体,如果是在同一个窗体就不需要。
我使用DataGrid、MSFlexGrid比较多一点,但是觉得前者对数据库中的显示很好,而后者对于查询结果显示比较好,这个也就是许多同仁认为VSFlexGrid比较好的原因吧,哪天我也下一个来用哈,比如我这几天弄的一个科研管理系统就是都用了的,显示数据的时候用的 DataGrid,显示查询结果的时候用的MSFlexGrid很是不方便。在使用DataGrid的时候如果想要在开始就设置字段的个数就点右键----编辑,然后点insert就可以添加了,至于宽度在属性里面可以一个一个设置,动态的话就要先用len看你数据的长度,然后再乘以一个系数。MSFlexGrid的使用我主要是用于查询结果,最后用additem来添加,这里要注意2个问题,一是要设置fixedrows=0,removeitem=1,因为不设置的话第一行会一直空着,在执行完additem的循环后,要加一句fixedrows=1这样是让显示字段标题的那行为灰色的那种,要不然显示不好看,如下面代码:
With MSFlexGrid1
.FixedRows = 0
.RemoveItem 1
.ColWidth(0) = 1200: .ColWidth(1) = 3000: .ColWidth(2) = 1200: .ColWidth(6) = 1500
strCN = Array("借阅证号", "书名", "图书条码", "借期", "还期", "已还", "库名")
For i = 0 To 6
.TextMatrix(0, i) = strCN(i)
Next
End With
With Library_Manage.rsLendReturn
If .State = adStateClosed Then .Open
Set Rs = .Clone
End With
With Rs
If Not .EOF Then
.MoveFirst
For i = 0 To .RecordCount - 1
If IsDate(.Fields("还期")) Then
'MsgBox .Fields("证号")
If CDate(.Fields("还期")) < Date Then
strSQL = "select 书名 from 馆藏书目 where 条码='" & .Fields("条码") & "' And 库室名='" & .Fields("库名") & "'"
With Library_Manage.Library_Manage_Con
If .State = adStateClosed Then .Open
Set objInfo = .Execute(strSQL)
End With
strT = .Fields("证号") & vbTab & objInfo.Fields("书名") & vbTab & .Fields("条码") & vbTab & .Fields("借期") & vbTab & .Fields("还期") _
& vbTab & .Fields("已还") & vbTab & .Fields("库名")
MSFlexGrid1.AddItem strT
End If
End If
.MoveNext
Next
If MSFlexGrid1.Rows > 1 Then _
MSFlexGrid1.FixedRows = 1
End If
End With
上面代码中的vbTab是一个空格符,这样在后面使用additem的时候就会分开显示,要不然是在同一个字段里面显示内容。我在csdn的论坛上,常看到一些朋友问一些关于数据库查询语句方面的东西,我觉得这些应该多看看书,SQL 查询语句不外乎,创建、修改、插入、删除等,然后就是增加查询的属性,比如Union、Group By等等,这个其实应该在建表的时候把问题想清楚,数据库表的建立很重要,一般信息管理系统都是建立在数据库表的基础上的,如果表的建立很完善那么代码部分的工作就会很轻松。
我用vb也就是2,3个月的时间,但是通过问专家http://www.china-askpro.com/,以及CSDN我可以很迅速的找到我想要的东西,同时经过在CSDN上回答一些问题,让我对学的知识记的更牢固,我可以回答的问题也越来越多,虽然现在就2个三角,不过继续努力,呵呵。