Access 用户界面 v1.0(公开源代码)

Access 以简单易用而为人所知,但是用户界面设计这一块,很明显是一个短板。早期 2000 版中,将一堆命令按钮排成一列放置在窗体上,组成了简陋的“导航界面”。 2010 的版本中,加入了新的窗体类型——“导航窗体”,现代化了不少,但是用起来依然不够得心应手。

一直以来,我用的都是第三方控件,例如“ctExplorer.ocx”,界面确实非常漂亮,但部署起来好麻烦。需要将控件拷贝到每台电脑,然后注册。注册的话,又需要管理员权限,公司电脑好多用户都没有管理员权限,得向 IT 部门申请。总之,各种烦。

公司某经理换电脑了,IT 为其安装了64位操作系统,这个32位的控件,彻底不能使用了。这一回,我不得不去面对挑战。

于是在网上搜索,看有没有其他解决方法。国内有 2 个大的 Access 论坛网站,提供“ Access 开发平台”免费下载,界面看起来还不错,使用的都是 “Microsoft Web Browser” 作为导航控件,但是源代码是不公开的。作为 Access 开发人员,我不能容忍自己对自己的程序有不能掌控的地方,免费的东西有时候也往往是最贵的,于是作罢,另辟蹊径。

国外第一大 Access 论坛——www.utteraccess.com上有专门一版是讨论用户界面设计的。大多只是展示各自的用户界面,很少有源文件。唯独有 2 个可下载的示例文件,导航界面没有使用任何外部控件,全部都是 Access 的基础控件(命令按钮、子窗体等)。但若要吃透其实现思想,也不是件容易的事情,因为其中使用了类模块。

经过 几周的努力,渐渐获得了一点章法。虽然还不够完美,但是基本上能解决我的问题了。现分享给大家。

点击下载Jasoftiger’s Access UI v1.0

截图:

 

《Access 用户界面 v1.0(公开源代码)》有14个想法

  1. 您好,我想在clsdtItemButton模块中将以frm开头的改为F开头的命名规则来打开窗体,但修改了下段的代码后并修改了表中引用的窗体名称,仍然无法打开,是否还需要修改其它什么地方的代码,请帮忙指点一下,谢谢老师了
    Case “frm”‘我把这个frm改为F
    If CurrentProject.AllForms(mcmd.Tag).IsLoaded = True Then
    Forms.Item(mcmd.Tag).SetFocus
    Else
    CallByName DoCmd, “OpenForm”, VbMethod, mcmd.Tag ‘, acNormal
    End If

      1. 因为想在已经编过的系统中测试菜单功能,所以懒得一个一个改窗体名为正规的frm开头(改名后,还得改相应的代码中的引用,太多窗体了,呵呵)所以想先用偷懒的办法测试,以后应该要学你们用frm开头的。

  2. 您好,非常期待主界面能允许以下DIY:
    1.程序标题字体大小允许实时更改保存,默认的20号字体太大,16号或18号正好。
    2.导航标签栏允许实时更改保存宽度大小(默认保存最后一次拖动的大小)
    3.如果窗体是以sfm内嵌方式打开的模式,允许右上角显示或不显示X按扭。
    4.最下面的底边(类似状态栏)能否增加允许自定义的标签功能(例如增加登陆者的姓名、权限等信息)

    这个主界面是我见过的最漂亮的界面了,而且还是公开源码的!博主牛人一个!我现在正在学习Access,很多地方才刚刚开始,您的这个框架非常适合我学习,期待早日看到您的最新作品。

  3. 因学识太少,想问一下博主点击皮肤管理这个菜单时,如何调用自己想要的窗体,看了半天,因没学过类,没有找到点击后的事件,请帮忙指定一下,谢谢啦。

    1. 这个用户主界面我没写什么使用文档,难得有人问起^_^,现在大概讲下吧:你要增减菜单,只需要修改tbldtMenuGroup(一级菜单组)和tbldtMenuItem(二级菜单)这两个表。tbldtMenuItem中的AccessID是给多用户授权用的,Item就是界面显示出来的菜单名,ProcesureName里面填的都是窗体和报表名,前3个字符有点讲究,以sfm开头的话,会作为子窗体嵌入主界面,frm或者rpt开头就会另外打开一个单独的窗体。
      菜单按钮的点击事件在类clsdtItemButton中Private Sub mcmd_Click()。
      祝你玩得愉快

      1. 刚按您的方法试过了frm,sfm开头的都可以正常打开指定窗体或报表,但是如果想打开表格的话,却无法打开,例如我的一个表格名称是以“sfm学生”命名的,可是在二级菜单中的ProcesureName增加了该sfm学生却无法打开,不知道为什么?

        另外,我想在以sfm开头的窗体内嵌主界面打开后,想增加一个关闭的“X”在窗体的标题栏处显示,方便别人能在打开后关闭它,不知在哪里增加,目前只能在窗体里增加关闭按扭进行关闭。

        博主分享的这个主界面太好了,解决了Access 2007之后的主界面设计问题,省去了这个界面开发,实在太棒了!期待您能抽空写一个教程,让我们学习一下,谢谢啦。

        1. 让用户打开表格是很危险,建议用表格窗体。关闭按钮我要考虑下是不是需要在下个版本中加进来。教程还没考虑过,因为开源的项目,大家可以随意添加新功能。最后多谢你的支持和鼓励^_^

      2. 嗯,确实是,表格还是以窗体打开的模式好,感谢提醒。
        非常期待您的大作,这个主界面非常清爽,大方!

发表评论

电子邮件地址不会被公开。