设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2270|回复: 17
打印 上一主题 下一主题

[窗体] 窗体功能设计

[复制链接]
跳转到指定楼层
1#
发表于 2010-11-14 14:56:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
todaynew版主曾发表过“窗体功能设计”这个ACCESS小品,此作品对VBA初学者很有帮助,但例子中的主窗体打开的“窗体1”及“窗体2”均是数据表式的子窗体,请问,“窗体1”及“窗体2”如果不以子窗体形式出现,以普通的窗体格式出现如何改代码?版主能否继续完善下例子?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-11-14 18:50:44 | 只看该作者
本帖最后由 todaynew 于 2010-11-14 18:51 编辑

应该与窗体类型无关,都是用docmd.openform "窗体名称"
3#
 楼主| 发表于 2010-11-14 21:41:52 | 只看该作者
谢谢!我的意思不是单单打开某个窗体,而是将“窗体3”嵌入到主窗体的主体中,如何改代码?

本帖子中包含更多资源

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

x
4#
发表于 2010-11-15 05:20:57 | 只看该作者
先在主窗体嵌入一个隐藏窗体(“空窗体”),打开“窗体3”的单击事件中,再把“空窗体”赋值给“窗体3”后显示出来:
Me.空窗体.SourceObject =“窗体3”
Me.=“窗体3”.Visible = True
5#
 楼主| 发表于 2010-11-15 08:46:05 | 只看该作者
本帖最后由 ycxchen 于 2010-11-15 09:20 编辑

谢谢4楼朋友的指教!你的办法很好!如果主窗体有多个命令按钮,要设置多个窗体,用你的办法可能会麻烦点,不知其它高手的意见如何?有其它办法吗?
6#
发表于 2010-11-15 13:17:41 | 只看该作者
本帖最后由 aslxt 于 2010-11-15 13:23 编辑

如果你的子窗体不是用于输入数据的,可以直接用查询做子窗体的数据源,这样可以减少很多窗体数量,如果数据量很大的时候,那些查询尽量增加条件,可以部分提高运行速度。假如说,你要用“查询1”作为子窗体的数据源,就:
Me.空窗体.SourceObject =“查询.查询1”

7#
 楼主| 发表于 2010-11-15 15:00:18 | 只看该作者
本帖最后由 ycxchen 于 2010-11-15 15:02 编辑

谢谢指教!我的目的不是用于子窗体查询,而是用于作为主控制面板,即类似单击按钮1能够将“录入窗体”嵌入到主窗体的主体中,单击按钮2能嵌入“查询窗体”,单击按钮3能嵌入“修改窗体”等等,要求嵌入的窗体不是数据表式的子窗体,而是普通的窗体,其实,这样的效果类似XP经典的主控制面板,如何改代码?盼大家指教。
8#
发表于 2010-11-15 15:40:25 | 只看该作者
本帖最后由 todaynew 于 2010-11-15 15:44 编辑
ycxchen 发表于 2010-11-15 15:00
谢谢指教!我的目的不是用于子窗体查询,而是用于作为主控制面板,即类似单击按钮1能够将“录入窗体”嵌入到 ...


还是与窗体类型无关。只需要用子窗体控件的SourceObject来选择窗体的源即可。比如:





Private Sub Form_Load()
Dim ssql As String
ssql = "SELECT Name FROM MSysObjects WHERE (Type=-32768) and (not Name='" & Me.Name & "')"
Me.窗体.RowSource = ssql    '列表框控件列示出除本窗体以外的所有窗体
End Sub

Private Sub 窗体_AfterUpdate()
If IsNull(Me.窗体.Value) = False Then
    Me.子窗体.SourceObject = Me.窗体.Value   '加载子窗体控件的数据源
Else
    Me.子窗体.SourceObject = ""
End If
End Sub


本帖子中包含更多资源

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

x
9#
发表于 2010-11-15 17:02:59 | 只看该作者
todaynew 的作品很有意思!支持了!
10#
 楼主| 发表于 2010-11-20 10:50:06 | 只看该作者
本帖最后由 ycxchen 于 2010-11-20 10:50 编辑

例子已学习了,可是,有些不明,特向todaynew版主请教:
Private Sub Form_Load()
Dim ssql As String
ssql = "SELECT Name FROM MSysObjects WHERE (Type=-32768) and (not Name='" & Me.Name & "')"
Me.窗体.RowSource = ssql
End Sub
在上述代码中,我用F1查看帮助,为何MSysObjects及Type=-32768看不到帮助文档的?MSysObjects及Type=-32768各代表什么意思的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 01:42 , Processed in 0.098433 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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