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