Office中国论坛/Access中国论坛

标题: 动态数据表窗体显示 [打印本页]

作者: ACMAIN_CHM    时间: 2009-3-14 22:56
标题: 动态数据表窗体显示

很多网友碰到动态改变窗体的记录集时,如何进行窗体字段的显示问题。
试了一下,ACCESS 2003中,窗体运行时无法动态的添加控件。只好用另外一个方法来变通地来实现这个功能。

思路
在窗体上一次性添加 256 个 textbox控件 T0,T1,T3,...,T255(因为ACCESS2003中一个查询或表最多255个字段)
然后根据窗体绑定的数据源的记录集,动态地对T0,T1,T3...来进行字段绑定,并设置列是否显示。

步骤
1. 生成这个窗体 flexForm ,你可以一个一个来复制这些个textbox,也可以用如下代码生成。

Public Sub createFlexFrom()
    Dim sOldFrmName As String
    Dim frm As Form

    Set frm = CreateForm
    sOldFrmName = frm.Name
   
    Dim ctlLabel As Control, ctlText As Control
   
    Dim i As Integer
   
    For i = 0 To 255
        Set ctlText = CreateControl(frm.Name, acTextBox)
        ctlText.Name = "T" & i
        
        Set ctlLabel = CreateControl(frm.Name, acLabel, , ctlText.Name)
        ctlLabel.Name = "L" & i
    Next i
   
    frm.DefaultView = 2
    frm.NavigationButtons = False
   
    DoCmd.Close acForm, frm.Name, acSaveYes
    DoCmd.Rename "flexForm", acForm, sOldFrmName
   
End Sub


运行上述代码,可得到一个名为 flexForm 的窗体,窗体默认显示方式为"数据表",无记录导航按钮。当然你可以按需要改成你希望的窗体名。


2. 打开这个 flexForm 的设计模式,按ALT+F11 进入VBE环境,在flexForm窗体模块上添加一个过程 bindRecordset,代码如下。




3. 在你自己的主窗体中可以应用这个窗体做为子窗体,并可以动态的改变这个窗体的记录集。
例如,主窗体中可以执行 Me.Child3.Form.bindRecordset "select * from crossQuery"

示例:
打开form1,输入 t ,点击按钮,查看子窗体的变化。 然后输入 query1,点击按钮。
createFlexForm在 模块中。


提醒: 具体使用中,你可以添加必要的容错代码。



******************
*  一切皆有可能  *
******************

.
ACMAIN - Access论坛回贴准则(个人).
.

.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .



作者: jay_0218    时间: 2009-3-14 23:42
学习
作者: twins    时间: 2009-3-15 00:08
谢谢楼主!
作者: luhao    时间: 2009-3-15 00:37
太神了
作者: asklove    时间: 2009-3-15 09:46
精彩,正是我需要的
收藏先!谢谢
作者: 付谦    时间: 2009-3-15 09:50
学习
作者: tmtony    时间: 2009-3-15 10:41
好思路!
作者: sbsfhgl    时间: 2009-3-15 10:44
学习了
作者: chaojianan    时间: 2009-3-15 10:56
高手,谢谢分享,学习。
作者: huangqinyong    时间: 2009-3-15 12:34
学习一下
作者: yori2007    时间: 2009-3-15 13:18
学习下,看看是不是我想要的
作者: Henry D. Sy    时间: 2009-3-15 14:15
学习
作者: wjsfeng    时间: 2009-3-16 17:55
看一下
作者: hoocg    时间: 2009-3-17 11:28
学习
作者: Grant    时间: 2009-3-17 11:43
虽然有点累,不过也不失为一种好方法,顶一个
作者: heqing3000    时间: 2009-3-18 09:52
学习一下
作者: t360103    时间: 2009-3-20 10:59

作者: kangking    时间: 2009-3-20 11:15
这个问题应该可以用第三方控件解决。用DataGrid就能很好地解决。我一般用VSFlexGrid。
作者: qw12345    时间: 2009-3-20 20:37
YZSFZS
作者: xianla    时间: 2009-3-20 21:13
学习
作者: luhao    时间: 2009-3-20 21:35
我想到了,该怎么样用它了
作者: RickyZjw-3721    时间: 2009-3-23 21:13
收藏起来,好好学习!
作者: brucecong    时间: 2009-3-24 10:42
赞一个
作者: flijgw    时间: 2009-3-24 16:38
学习一下,看看
作者: lxlmul    时间: 2009-3-24 16:42
学习中
作者: 上网求学    时间: 2009-3-24 20:02
平步青云
作者: 上网求学    时间: 2009-3-24 20:02
平步青云
作者: sun1ying2    时间: 2009-3-25 13:48
学习一下
作者: aqukhn81    时间: 2009-3-25 15:40
学习一下
作者: xuwenning    时间: 2009-3-25 16:10
谢谢楼主
学习
学习
作者: jiyu0617    时间: 2009-3-25 17:08
高手,学习学习
作者: 阿智    时间: 2009-3-28 00:03
好东西,支持
作者: canghua    时间: 2009-3-28 02:58
高手,学习。
作者: 82077802    时间: 2009-3-28 06:25
链接表管理器
作者: foreseer201    时间: 2009-3-30 17:43
学习高手的作品
作者: 345778796    时间: 2009-4-24 19:18
学习一下
作者: yanwei82123300    时间: 2009-4-27 12:03
学习一下
作者: 朱同学    时间: 2009-4-27 22:42
好创意
作者: zwkings    时间: 2009-4-28 10:53
感谢
作者: jackysu78    时间: 2009-4-29 10:00
非常实用方便
作者: yanlj518    时间: 2009-5-15 19:53
学习一下
作者: wu8313    时间: 2009-5-15 21:53
xuexi
作者: lyc283    时间: 2009-5-15 21:58
子子子子子子子子子子
作者: njy6000    时间: 2009-5-15 22:16
学习一下,楼主是热心人.
作者: zkh    时间: 2009-5-16 09:46
看介绍挺不错的,下载看看效果
作者: jetone    时间: 2009-5-19 17:39
学习一下
作者: 朱同学    时间: 2009-5-19 20:10
向高手学习
作者: 123shusheng    时间: 2009-5-20 21:55
92+
149
6+
作者: lkkl66    时间: 2009-6-9 16:56
1# ACMAIN_CHM
学习!!学习!!
作者: goto2008    时间: 2009-6-9 21:00

作者: shakamiuu    时间: 2009-6-11 12:09
膜拜
作者: mkoijn    时间: 2009-6-11 12:52
study~~~
作者: xy126800    时间: 2009-6-12 14:08
学习一下
作者: n7562803    时间: 2009-6-12 21:55
哇哇哇  好劲啊 ~~~  数据库大赛能用吗
作者: RickyZjw-3721    时间: 2009-6-13 23:30
本帖最后由 RickyZjw-3721 于 2009-6-13 23:38 编辑

楼主的创意太精彩了!绝了!佩服。。。
P.S不过还有一个小问题请教楼主,下面代码里“sSQL”是代表Current Database里所有可以引用的表、查询吗?即是否当前数据库里所有的表和查询都可以通过这个语句来作为Flexform的记录源吗?十分感谢你的回复!
Public Sub bindRecordset(sSQL As String)
    Me.RecordSource = sSQL
作者: kent_73    时间: 2009-6-20 20:55
学习
作者: df    时间: 2009-6-20 22:45
学习   学习
作者: 朱同学    时间: 2009-6-21 22:23
太神奇啦
作者: zwb6517    时间: 2009-6-25 09:54
学习了!谢谢!
作者: jp777    时间: 2009-6-27 23:46
好好学习
作者: lizi6914    时间: 2009-7-1 10:26
学习学习 谢谢
作者: 风啸啸    时间: 2009-7-5 11:46
谢谢分享,学习。
作者: winter_ice    时间: 2009-7-5 12:11
好 谢谢
作者: fnsmydyang    时间: 2009-8-1 22:29
谢谢分享,学习
作者: benlty    时间: 2009-8-8 13:57
学习中
作者: afengyu    时间: 2009-8-8 17:14
学习一下
作者: aslxt    时间: 2009-8-10 08:28
好东东,学习
作者: lanshai    时间: 2009-8-10 09:11
ooooo
作者: wxusheng9302    时间: 2009-8-10 12:53
学习学习学习
作者: wangyun46    时间: 2009-8-10 15:57
谢谢楼主,解决了我的难题!
作者: ba888888    时间: 2009-8-10 20:51
非常有用,谢谢,受教了~
作者: li08hua    时间: 2009-8-18 20:10
谢谢楼主!启发很大!
作者: wjtravis    时间: 2009-8-20 17:26
來學習一下
作者: ilovshevchenko    时间: 2009-8-21 20:54
这个要学习的
作者: ellaslow    时间: 2009-8-21 23:33
好帖
作者: aaronli    时间: 2009-8-22 02:26
ccla
作者: lucascott    时间: 2009-8-22 05:11
cool
作者: lucascott    时间: 2009-8-22 05:11
very good
作者: 不是我的错    时间: 2009-8-25 13:52
正是我需要的内容
学习一下
作者: mhyyun    时间: 2009-9-2 10:35
学习一下学习一下
作者: zzcjp    时间: 2009-9-6 17:08
好办法!
作者: amocvv    时间: 2009-9-11 21:59
学习学习~~
作者: guten    时间: 2009-9-11 23:23
看看什么样子
作者: loginwjd303    时间: 2009-9-12 00:39
来学习了
作者: 真主    时间: 2009-9-12 13:49
看看
作者: tmtming    时间: 2009-9-12 19:45
好学习
作者: wang1950317    时间: 2009-9-12 22:36
学习再学习!
作者: sunny84123    时间: 2009-9-13 00:44
thanks
作者: elong    时间: 2009-9-15 15:44

作者: soundlin    时间: 2009-9-15 20:54
dig
作者: tf328569    时间: 2009-9-17 12:14
正在寻找中
作者: xing2752    时间: 2009-9-17 13:43
学习了
作者: lovehere    时间: 2009-9-21 10:51
这个需要学习一下
作者: yyxxx116633    时间: 2009-9-22 15:10
kankan xian
作者: rtt123    时间: 2009-9-23 06:46
Thanks very much
作者: wer2214517    时间: 2009-9-23 20:53
看看
作者: lh19700925    时间: 2009-9-24 14:06
1# ACMAIN_CHM
作者: 月影无限    时间: 2009-9-25 00:36
我也是这个思路,但是一次加255个实在太多了吧,所以一直想看有没其他方法,不过还是谢谢楼主的分享
作者: zhufree    时间: 2009-9-25 08:46
学习,没理解呢
作者: Hao62    时间: 2009-9-25 17:20
谢谢楼主
学习
学习




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3