VB建壳指定工作组启动ACCESS详解.doc_第1页
VB建壳指定工作组启动ACCESS详解.doc_第2页
VB建壳指定工作组启动ACCESS详解.doc_第3页
VB建壳指定工作组启动ACCESS详解.doc_第4页
VB建壳指定工作组启动ACCESS详解.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VB与ACCESS项目技术分享VB建壳指定工作组启动MDB项目详解 一、前言 1.1 用VB加Access进行项目开发之初衷Access因操作简便、直观,以及强大的功能,而得到许多数据库开发者的推崇,不过 Access 也有一定的局限性,如:Access开发平台开发的项目,无法完全编译并脱离Access系统环境;宏的安全级别限制有时让我们项目不能顺利启动,在分发项目时,需要我们手动对Access逐一手动设置等。为弥补 Access 某些不尽如人意的地方,我尝试着用 VB与 Access 结合,用以自动完成Access系统环境设置,如:修改宏安全级别避开限制启动MDB项目,或指定工作组启动 MDB 项目等。1.2 配置要求:l 本文ACCESS为2003版本(其它版本大家可自行测试);l 本文以office提供的ADDRBOOK.mdb数据库作为讲解及演示实例l 壳通过VB6编译,编译后文件名:指定工作组并启动MDB项目.exe 1.3 本文要点: l 如何通过“安全机置向导”保护数据库;l 如何实现VB与ACCESS无缝对接;l 如何实现VB修改ACCESS宏安全级别限制;l 如何实现用shell函数指定工作组启MDB项目l 如何实现VB建立壳及如何编译EXE二、使用 Security Wizard 设置 Access 数据库的安全性 我们通常会通过设置数据库密码、设置模块密码或将mdb文件转换为 mde 文件等方法来保护数据库的安全,以上方法能最大限度保护数据库的安全,但上述方法在网络的多人使用环境中有一定局限性,不能针对不同的用户,提供对于数据库对象不同的访问及管理权限。解决方案就是建立“工作组”,那什么是“工作组”呢?通俗的说,“工作组”就是将用户按级别编成不同的“组”,并为不同组设定不同数据库访问及管理权限,并将这些设置存放在一个后缀为MDW的文件中,这个文件就是工作文件。只是建立工作组需一系列的操作,如果你不是很明了,会让你无所适从,为此Access为我们提供了友好的“设置安全机置向导”,让你轻松“一点”搞定。2.1 “安全机制向导”具体操作步骤:1、打开数据库,点菜单 工具安全设置安全机制向导,打开向导。2、在对话框中单下一步,其中一些默认选项不用做修改,直至下图这一步很关键(见下图),你可选择已有用户,并设定密码,你也可以添加新用户,并为添加用户设定密码,剩下就是点下一步直至最后完成就好了。21完成后,会在mdb文件所在文件夹产生另两个文件(见下图),后缀mdw 的文件为工作组文件,后缀bak 的文件为 mdb 备份文件。你必须记住,用户名:tan 密码:123,这可是我们后面指定工作组打开mdb关键。三、VB建壳指定工作组启动MDB项目 3.1 了解指定工作组启动MDB项目命令下面是一段指定工作组启动MDB项目命令实例(见下图),你可以直接将以下命令粘贴到运行对话框运行。C:Program FilesMicrosoft OfficeOFFICE11msaccess.exe D:例程ADDRBOOK.mdb /wrkgrp D:例程Security.mdw /user tan /pwd 123l 应用程序路径:C:Program FilesMicrosoft OfficeOFFICE11msaccess.exe l MDB文件路径:D:例程DataADDRBOOK.mdb l 指定工作组参数:/wrkgrpl 工作组文件路径:D:例程DataSecurity.mdwl 工作组用户参数:/userl 工作组用户密码参数:/pwd3.2 指定工作组启动MDB需要解决的几个问题:l 实现VB与ACCESS 的无缝对接。实现对接需要VB工程中引用ACCESS11.0 类库,文件名 MSACC.OLB ,引用方法:在VB工程窗口,点击菜单:工程引用钩选 Micfrosoft ACCESS 11.0 Object library点确定,完成类库引用。这样我们就能如在VBA编辑环境一样对ACCESS对象进行编程,调用ACCESS类对象属性、事件、方法。实例代码:申明ACCESS对象类Dim objAccess As Access.Application创建ACCESS实例对象Set objAccess = CreateObject(ACCESS.Application)通过access对象属性,获得当前access版号strVer = objAccess.Version退出ACCESS,并释放内存objAccess.QuitSet objAccess = Nothingl 修改ACCESS宏安全级别自定义函数,确保mdb项目顺利启动。有关于此的方法我在论坛有发贴,在此不着笔墨。 实例代码:* 函 数 名:SetRegLevel- 功能描述:修改ACCESS安全级别在注册表键值. 输 入:blnSetReg (Boolean) ,false为低,true为中 输 出:无 调用模块:RegWrite 写注册表操作自定义函数,用以修改安全级别键值 编程:江羽 日 期:2008-10-09* Public Function SetRegLevel(blnSetReg As Boolean) Dim strRegSec As String 字符串变量,安全设置键值所在注册表路径 Dim strVer As String 当前ACCESS版号字符串变量 On Error Resume Next 创建ACCESS对象 Set objAccess = CreateObject(ACCESS.Application) 获得当前office版号 strVer = objAccess.Version 退出ACCESS,并释放内存 objAccess.Quit Set objAccess = Nothing 将注表路径赋值给变量 strRegSec = HKEY_CURRENT_USERSoftwareMicrosoftOffice & _ strVer & accessSecurityLevel RegWrite 自定义函数,用以写入键值操作 键值1为低,2为中,3为高 If blnSetReg = False Then RegWrite strRegSec, 1 Else RegWrite strRegSec, 2 End If End Functionl 指定工作组启动MDB项目自定义函数。这一节关键点在于用代码获取msaccess.exe 文件所在路径,换句话说就是必须得到office的安装路径。方法有二:一是SysCmd方法,二是通过注册表指定键值获取,本文采用的是第一种方法。以上二法代码实例,我在论坛中已有发贴,在此不做细说。下面是指定工作组启动MDB项目代码。* 函 数 名:OpenWmdAcc- 功能描述:用shell方法打开带安全工作组MD项目,必须提供工作组文件完整路径, 工作组用户名,密码. 输 入:strAccName(String) mdb项目文件名 strMdwName(String) 工作组文件名 strUserName(String) 工作组用户名 strPassWord(string) 工作组密码 输 出:无 调用模块: 编程:江羽 日 期:2008-10-09*Public Function OpenWmdAcc(strAccName As String, strMdwName As String, strUserName As String, strPassWord As String) Dim strAccPath As String Msaccess.exe 文件完整路径 Dim strAccFileName As String 要启动 mdb文件完整路径 Dim strMdwFileName As String 工作组文件及完整路径 Dim strAPP As String 命令表达式 On Error Resume Next 创建ACCESS实例 Set objAccess = CreateObject(ACCESS.Application) 获取MSACCESS.EXE完整路径 strAccPath = SysCmd(acSysCmdAccessDir) & msaccess.exe 获取mdb项目完整路径 strAccFileName = App.Path & Data & strAccName 获取工作组文件完整路径 strMdwFileName = App.Path & Data & strMdwName 带工作组启动的命令行 strAPP = & strAccPath & & strAccFileName & /wrkgrp & _ strMdwFileName & /user & strUserName & /pwd & strPassWord Shell strAPP, 3 启动带工作组项目 objAccess.Quit 退出ACCESS Set objAccess = Nothing 并释放内存 如出现错误,给出错误提示 If Err 0 Then MsgBox 系统出现: & Err.Description & 错误! , vbOKCancel + 32, 系统提示: End IfEnd Functionl 调用以上两个自定义函数,建立指定工作组启动项目过程。实例代码:* 过 程 名:OpenWmdMdb- 功能描述:首选修改宏安全级别限制,其次指定工作组打开mdb项目过程 输 入:blnSetReg (Boolean) 输 出:无 调用模块:SetRegLevel 写注册表操作自定义函数,用以修改安全级别键值 OpenWmdAcc 指定工作组并启动mdb项目 编程:江羽 日 期:2008-10-09*Sub OpenWmdMdb() 关闭宏安全级别限制 SetRegLevel False 指定工作组启动mdb项目,用户名:tan,密码:123,是建立工作组时自己设定的 OpenWmdAcc ADDRBOOK.mdb, Security.mdw, tan, 123 开启中宏安全级别限制 SetRegLevel TrueEnd Sub3.3最终完成建壳,并编译为EXEl 启动VB6,建一个标准EXE工程。21l 将窗体BorderStyle属性设为:0-None 无边框模式,在picture属性中添加背景图片,实例图片CXT.jpg在素材文件夹中。 l 将控件工具栏中的时钟控件添加到窗体中,并将时钟控件Interval属性值设定为:3000,以便计时器触事件在三秒钟后关闭窗体。 l 添加时钟控件触发事件,见实例代码。* 过 程 名:Timer1_Timer- 功能描述:计时器控件,计时触发事件,用以延时关闭窗体 输 入:无 输 出:无 调用模块:OpenWmdMdb 编程:江羽 日 期:2008-10-09*Private Sub Timer1_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论