设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 【原创 / 文章】在Access中使用“用户窗体”(图文教程)

[复制链接]
跳转到指定楼层
1#
发表于 2005-8-26 19:28:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家都知道,在VB中,我们可以创建用户窗体(UserForm),在VB环境中我们可以直接自由绘制窗体。作为同核心的VBA,我们在Access中却无法使用用户窗体,只能只用Access的窗体,虽然两者类似,但是还是有很多的区别,有的时候我们会需要用到用户窗体。难道微软真的这么绝情?

但是!我们在Access VBA环境的自定义工具栏中赫然看到“用户窗体”,虽然内容是灰色的,但是这意味着我们只要创建一个用户窗体,我们就可以直接在Access VBA环境中编辑他。微软保留了编辑功能,这就意味着Access VBA并没有放弃支持用户窗体,只是我们无法创建他而已。

用户窗体的激活意味着我们可以重用大量的VB源码,而几乎不需要作任何改动。



1、尝试创建:

工程资源模块—插入

令人失望的是,只有模块和类模块,没有窗体。



2、尝试导入

工程资源模块—导入

这下有了,导入文件格式里面包含窗体。



于是我们打开VB,创建一个空的窗体,然后导出成.frm文件。

使用VBA导入,失败……

错误信息:

VBE 不支持 “C:\xxx\xxx\xxx.frm” 中包含的窗体类,窗体不能被加载

我们点击帮助后,看到VBA如下解释:



原来VBA只支持用户窗体(UserForm),我们用记事本打开.frm文件,发现格式居然是VB.Form



3、求助兄弟

看来VB的路子走不通了,但是我们去哪里搞个UserForm的导出来呢?

这时候我们想到了Access的亲兄弟Excel,没错,Excel中是没有窗体的,那么Excel的VBA应用程序要用窗体怎么办呢?他一定有办法创建窗体,我们去找他聊聊。

我们在Excel中打开VBA环境,尝试创建一个窗体:



太好了,Excel的VBA环境可以创建用户窗体,没话说,找他借一个,自家兄弟嘛。

Excel创建窗体,然后导出……

回到Access,然后导入……

太感动了,我们终于在Access中创建了一个用户窗体,工程资源中被微软被Access屏蔽的窗体分类也出现了,而且我们看到,Access完全支持用户窗体的编辑,一向默默无闻的工具箱和用户窗体的工具栏也被激活了!



4、编辑用户窗体

感动之下,情不自禁,我们开始自己来编辑这个用户窗体。

画个文本框……

加入一个图形……

……

怎么就这么几个控件……少了点……

居然也不能自己添加……

不会吧,难道用户窗体就支持这几个控件?这决不可能!

看来又是Access在捣鬼,但是:我们发现了“导入”!看来又要找兄弟去借了……

打开Excel,创建用户窗体,工具箱上面也是这么几个控件,我们点击右键发现……



太好了,可以“附加控件”,立即动手,附加了一堆第三方控件。

然后导出页为选项卡.Pag格式。

回到Access,在工具箱上面导入.Pag文件



再次感动,我们的工具箱上面多了一个页,里面包含了我们刚才在Excel中附加的控件。

让我们来试试创建一个,成功!

添加一个滚动条……

添加一个记录浏览器……

(疯狂添加中……)

5、结束语

至此,我们已经可以做到:


  • 在Access VBA环境中创建和编辑用户窗体
  • 在Access VBA环境中扩展工具箱


是的,对于我们来说,Access VBA被屏蔽的用户窗体创建和编辑功能已经被激活了,怎么样,是不是很想马上在你的程序中使用一下用户窗体了?更重要的是,你现在可以从网上下载很多VB的源码放到这里直接使用了,包括Excel里面包含窗体的源码。而不需要象以前那样只能下载无窗体的源码,或者手工移植窗体相关的代码到Access.Form,这对我们而言,是一个太大的好消息了。

附上我做到一个用户窗体演示:











6、后记









<FONT color=#ff0000>经过Trynew指点,原来微软只

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-8-26 19:58:00 | 只看该作者
佩服你专的这么透彻。。。。。。。。。。
3#
发表于 2005-8-26 20:01:00 | 只看该作者
讲解的太精彩了!补充一下,新建用户窗体和附加控件不用到Excel中去,在Access VBA环境的自定义工具栏中就有“插入用户窗体”、"附加控件",以及“设置注释块”、“解除注释块”等隐藏的工具按钮都非常好用。另外要说明一下,某些控件在Access窗体中不支持部分属性,而在UserForm窗体中支持的很好。但牵涉到数据库处理,还是Access窗体功能强大。
4#
发表于 2005-8-26 20:09:00 | 只看该作者
明白了!真强。
5#
发表于 2005-8-26 20:28:00 | 只看该作者
绝ding![em23][em23][em23]
6#
发表于 2005-8-26 20:32:00 | 只看该作者
居然可以这样弯弯绕,pfpf!!!
7#
发表于 2005-8-26 20:34:00 | 只看该作者
大家快送花啊!
8#
发表于 2005-8-26 21:14:00 | 只看该作者
虽然拐了个弯,不过拐的很漂亮!楼主的钻研精神可敬可佩
9#
发表于 2005-8-26 22:00:00 | 只看该作者
OK , 實用.



[此贴子已经被作者于2005-8-26 14:01:14编辑过]

本帖子中包含更多资源

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

x
10#
 楼主| 发表于 2005-8-26 22:10:00 | 只看该作者
以下是引用Trynew在2005-8-26 12:01:00的发言:

讲解的太精彩了!

补充一下,新建用户窗体和附加控件不用到Excel中去,在Access VBA环境的自定义工具栏中就有“插入用户窗体”、"附加控件",以及“设置注释块”、“解除注释块”等隐藏的工具按钮都非常好用。

另外要说明一下,某些控件在Access窗体中不支持部分属性,而在UserForm窗体中支持的很好。但牵涉到数据库处理,还是Access窗体功能强大。



果然可以,我怎么没想到,原来微软只是把他隐藏了而已。我反而舍本逐末了。

多谢指点!

[此贴子已经被作者于2005-8-26 14:35:21编辑过]

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

本版积分规则

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

GMT+8, 2024-4-19 17:27 , Processed in 0.110091 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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