|
本帖最后由 todaynew 于 2010-1-5 20:03 编辑
其实本例的起因倒不是真想讲通用筛选的问题,主要想讲的是用VB来创建控件和删除控件的问题。可是因为选择了这样一个主题,没办法,只好写的相对完整些。基于最初的考虑,还是想去伪存真,也就是告诉同志们,本例的核心技术只有两条语句:CreateControl和DeleteControl。实际上,许多看似眼花缭乱的功能其实往往只有一两句关键的语句,你只要找到了它们便也就可以做到纲举目张,豁然开朗。
需要说明的是,本系统中的主窗体、子窗体、条件窗体、选择窗体,以及筛选表和公共模块是必要的。其他的你都可以不要,但你需要搞一些需要的表到系统中来。否则你没了对象,你还和谁结婚呢?
Sub CrtControls(frm As Form)
Dim ctlLabel As Control, ctlText As Control
Dim rs As New ADODB.Recordset
Dim i As Long
rs.Open "筛选表", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
For i = 1 To rs.RecordCount
Set ctlText = CreateControl(frm.Name, acTextBox, , "", rs("控件名").Value)
Set ctlLabel = CreateControl(frm.Name, acLabel, , ctlText.Name, "Label" & i)
ctlText.Move ctlLabel.Width + 50, (ctlLabel.Height + 50) * (i - 1)
ctlLabel.Move ctlLabel.Left, (ctlLabel.Height + 50) * (i - 1)
ctlText.Name = rs("控件名").Value
ctlLabel.Caption = rs("控件名").Value
rs.MoveNext
Next
DoCmd.Restore
End Sub
Sub DelControls(frm As Form)
Dim ctls As Controls
Dim ctl As Control
Set ctls = frm.Controls
For Each ctl In ctls
DeleteControl frm.Name, ctl.Name
Next
End Sub
删除与创建控件过程图:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|