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群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 合并列数据到一个文本框的示例;...(05.06)
- 通过命令按钮让Access列表...(04.24)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)

学习心得
最新文章
- 仓库管理实战课程(18)-设置日期...(05.19)
- 仓库管理实战课程(17)-库存明细...(05.13)
- 【Access高效办公】条件格式设...(05.12)
- 仓库管理实战课程(16)-联合查询...(05.07)
- 合并列数据到一个文本框的示例;输出...(05.06)
- 仓库管理实战课程(15)-月度库存...(04.30)
- Access选择打印机、横纵向、纸...(04.29)
- 仓库管理实战课程(14)-出库功能...(04.26)
- 通过命令按钮让Access列表框指...(04.24)
- 仓库管理实战课程(13)-入库功能...(04.21)