Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

access-VBA编程 第10章 安 全

时 间:2009-03-02 09:09:55
作 者:UMVsoft整理   ID:1445  城市:上海
摘 要:vba
正 文:


第10章 安 全


处理加了密码的MDB数据库文件
当 MDB 文件加了密码,直接由 Access 打印MDB文件时,会出现密码对话框,询问密码。但是若要由 VB或BA程序中打印,必須更改B和VBA序中打开MDB文件的指令,否则会出现错误信息!以下针对各种情况,分別加以说明:
1、使用 DAO 命令打开MDB文件: OpenDatabase
若要由程序中打开,命令如下:
Set DB = OpenDatabase(DatabaseName, False, False, ";Pwd=密码")
实例:
Dim db As Database
Set db = OpenDatabase("C:\db1.mdb", False, False, ";Pwd=1")
若要使用 Data 控件,设定方法如下:
1、设定 DatabaseName 属性 (MDB文件名称 / 含路径)
2、设定 Connect 属性,將预设的字串 "Access" 改成 ";Pwd=密码" (不含双引号)
3、设定 RecordSource 属性
2、使用 ADO 命令打开MDB文件:
在使用 ADODC 或 DataEnvironment 设定好之后,直接利用属性窗口修改 ConnectionString 属性(附属于ADODC) 或 ConnectionSource 属性(附属于 DataEnvironment 的 Connection 控件),修改的方法是在属性之后增加以下参数:
;Jet OLEDB:Database Password=密码
除了 ADODC 及 DataEnvironment 之外, 直接使用 ADO 控件來打开含有密码的 mdb MDB文件,设定参数的方法也是相同的。
3、压缩加了密码的MDB文件:CompactDatabase
DBEngine.CompactDataBase "原MDB文件", "新MDB文件", , , ";pwd=密码"
实例例如:
DBEngine.CompactDatabase "C:\Db1.mdb", "C:\Db2.mdb", , , ";pwd=1"
4、复加了密码的MDB文件: RepairDatabase
不必理会MDB文件设定的密码!
DBEngine.RepairDataBase "MDB文件"
实例例如:
DBEngine.RepairDataBase "C:\Db1.mdb"
以下给出一个函数可以使用DAO打开带密码保护的MDB数据库文件:
Public Function OpenPasswordProtectedDatabase(DBPath As String, _
Password As String) As Object
On Error Resume Next
Dim db As DAO.Database
Set db = DAO.OpenDatabase(DBPath, False, False, _
";pwd=" & Password)
If Err.Number = 0 Then
Set OpenPasswordProtectedDatabase = db
Else
Set OpenPasswordProtectedDatabase = Nothing
End If
End Function
其中参数DBPath为数据库文件的有效路径名称;参数Password为密码。
该函数需要引用DAO数据库才有效。
如何调出工作组对话框
调出“用户与组帐号”对话框:DoCmd.DoMenuItem acFORMBar, 6, 5, 2, acMenuVer70 调出“用户与组权限”对话框:DoCmd.DoMenuItem acFORMBar, 6, 5, 1, acMenuVer70
以上语句在office2000里测试通过
试用版限制时间与日期的方法
可用注册表简单地保存已用的天数或次数 '
次数限制(如30次):
Private Sub Form_Load()
Dim a As Long
Dim b As Long
b = GetSetting("MyApp", "set", "times", 51345)
a = b Xor 51345
If a < 30 Then
MsgBox "现在剩下:" & 30 - a & "试用次数,好好珍惜!"
a = a + 1
b = b Xor 51345
SaveSetting "MyApp", "set", "times", b
Else
MsgBox "试用次数已满,请联系gfuuyygy!"
End If
End Sub
'时间限制的(如10天)
Private Sub Form_Load()
Dim a As Long
a = GetSetting("MyApp", "set", "day", 0)
If a = 10 Then
MsgBox "试用期已过,请联系gfuuyygy!"
Else
MsgBox "现在剩下:" & 10 - a & "试用天数,好好珍惜!"
if day(now)-a>0 then
a = RemainDay + 1
SaveSetting "MyApp", "set", "times", a
End if
End if
End Sub

上一节



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助