设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12345下一页
返回列表 发新帖
查看: 18920|回复: 48
打印 上一主题 下一主题

[窗体] 【Access小品】通用筛选实例

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-5 17:34:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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

评分

参与人数 1经验 +10 收起 理由
Grant + 10 精品文章

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-1-5 19:27:22 | 只看该作者
谢谢了,先下载看看
3#
发表于 2010-1-5 20:27:57 | 只看该作者
谢谢todaynew,学习学习。
4#
发表于 2010-1-5 20:50:16 | 只看该作者
好东西,不可不留
5#
发表于 2010-1-5 21:46:07 | 只看该作者
学习一下!!
6#
 楼主| 发表于 2010-1-6 06:47:38 | 只看该作者
谢谢领导和同志们鼓励
7#
发表于 2010-1-6 09:13:27 | 只看该作者
8#
发表于 2010-1-6 09:14:32 | 只看该作者
todaynew又出大作了,学习!
9#
发表于 2010-1-6 10:56:06 | 只看该作者
学学,体会体会!
10#
 楼主| 发表于 2010-1-6 13:36:59 | 只看该作者
增加了导出Excel表的功能

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-15 11:14 , Processed in 0.081345 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表