设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 60115|回复: 286
打印 上一主题 下一主题

[窗体] 动态数据表窗体显示

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-14 22:56:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

很多网友碰到动态改变窗体的记录集时,如何进行窗体字段的显示问题。
试了一下,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 .


本帖子中包含更多资源

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

x

评分

参与人数 1经验 +15 收起 理由
renyucai1963 + 15 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-3-14 23:42:16 | 只看该作者
学习
3#
发表于 2009-3-15 00:08:57 | 只看该作者
谢谢楼主!
4#
发表于 2009-3-15 00:37:19 | 只看该作者
太神了
5#
发表于 2009-3-15 09:46:24 | 只看该作者
精彩,正是我需要的
收藏先!谢谢
6#
发表于 2009-3-15 09:50:53 | 只看该作者
学习

点击这里给我发消息

7#
发表于 2009-3-15 10:41:29 | 只看该作者
好思路!
8#
发表于 2009-3-15 10:44:51 | 只看该作者
学习了
9#
发表于 2009-3-15 10:56:01 | 只看该作者
高手,谢谢分享,学习。
10#
发表于 2009-3-15 12:34:17 | 只看该作者
学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 10:55 , Processed in 0.125315 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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