VB是否有什么办法把ACCESS的数据库文件(MDB文件)加密码

flying02 2004-11-23 11:45:09
给个加密思路.
...全文
338 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
cool_man 2004-12-27
  • 打赏
  • 举报
回复
gz
flying02 2004-12-27
  • 打赏
  • 举报
回复
我受不了这个问题了,结贴,以后再讨论
helanshan 2004-12-14
  • 打赏
  • 举报
回复
写了一个,能添加密码(6位),在打开数据库时,输入密码,不报错,却报权限不够,不明白了??
artoksxb 2004-12-14
  • 打赏
  • 举报
回复
DBEngine.CompactDataBase "原MDB文件", "新MDB文件", , , ";pwd=密码"
snowmiao2002 2004-12-14
  • 打赏
  • 举报
回复
密码在,数据库以独占方式打开下设定

db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Lawyer.mdb;Jet OLEDB:Database Password=888888;"
fxy_2002 2004-12-14
  • 打赏
  • 举报
回复
我朋友给过我这样一个思路(我没试过~~~):
把MDB文件头的前二十个字节用乱码填充(之前要备份)~~~~~~~~
每次关闭程序备份,打乱;
每次启动程序恢复,~~~~~

哪位朋友有兴趣试试~~~~
试完请告诉一声~~~~

====

如果程序被非正常中止呢?比如从任务管理器中被杀掉了线程,然后再用access打开你程序还原后的 mdb,你的数据安全一样保证不了。这个方法也只能防君子而不防小人。:)

用工作组安全文件应该是比较可行的方式。

helanshan 2004-12-14
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3642/3642313.xml?temp=.4757654
bit1001 2004-12-14
  • 打赏
  • 举报
回复
直接在Access加密最好...
helanshan 2004-12-13
  • 打赏
  • 举报
回复
等会我给你写一个..
flying02 2004-12-13
  • 打赏
  • 举报
回复
楼上这位朋友
我就是想实现你说的这种效果,
我也是这个思路的,
但不知道怎么实现
flying02 2004-11-24
  • 打赏
  • 举报
回复
?????
lndlwwh830 2004-11-24
  • 打赏
  • 举报
回复
to:
我可以告诉你可行
flying02 2004-11-24
  • 打赏
  • 举报
回复
我先研究一下,
我的想法是把MDB文件转成二进制文件,然后在文件头加几个字节.
使用的时候再转换回来.
不知道是否可行.
inbreak 2004-11-24
  • 打赏
  • 举报
回复
我朋友给过我这样一个思路(我没试过~~~):
把MDB文件头的前二十个字节用乱码填充(之前要备份)~~~~~~~~
每次关闭程序备份,打乱;
每次启动程序恢复,~~~~~

哪位朋友有兴趣试试~~~~
试完请告诉一声~~~~
aohan 2004-11-24
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim DBEngine1 As New DAO.DBEngine
If Text2.Text <> Text3.Text Then
MsgBox "两次输入的密码不相同,请重新设置!"
Exit Sub
End If
If Dir("c:\New.mdb") <> "" Then _
Kill "c:\New.mdb"
'确保数据库New.mdb不存在

DBEngine1.CompactDatabase Text1.Text, _
"c:\New.mdb", , , ";pwd=" + Text2.Text + ";"
' 设置数据库密码后形成新的数据库保存在c:\New.mdb"

Kill Text1.Text
'删除源数据库

Name "c:\New.mdb" As Text1.Text
'将压缩后的数据库重命名回源数据库
End Sub
of123 2004-11-24
  • 打赏
  • 举报
回复
引用 DAO 3.6:

DBEngine.CompactDataBase "原库名", "新库名", ";pwd=密码"

例:
DBEngine.CompactDatabase "C:\Db1.mdb", "C:\Db2.mdb", ";pwd=123456"
If len(Dir("C:\Db2.mdb")) then
Kill "C:\Db1.mdb"
Name "C:\Db2.mdb" As "C:\Db1.mdb"
End If
xayzmb 2004-11-24
  • 打赏
  • 举报
回复
有一段代码
你可以参考一下
能达到你的要求:
'在引用中选中Microsoft Jet and Replication,然后应用如下代码

Dim j As New JRO.JetEngine
'压缩并备份数据库到另一目录
j.CompactDatabase "provider=Microsoft.Jet.OLEDB.4.0;data " & _
"source=D:\myDB.mdb;", _
"provider=Microsoft.Jet.OLEDB.4.0;data " & _
"source=E:\myDB.mdb;" & _
"jet oledb:encrypt database=true;" & _
"jet oledb:database password=123456789"

set j = nothing
'备份完了以后
'将原数据库删掉
'再把备份的数据库copy回原位置
tiaoci 2004-11-23
  • 打赏
  • 举报
回复
使用工作组方式,用 WRKGADM.EXE
jjhlover 2004-11-23
  • 打赏
  • 举报
回复
学习
flying02 2004-11-23
  • 打赏
  • 举报
回复
可否说详细一点
加载更多回复(6)

7,788

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧