偶用compactdatabase方法压缩数据库,原库有密码,但压缩后的库文件却无密码,不...

来源:百度文库 编辑:神马文学网 时间:2024/04/28 19:13:53
Set   jro   =   New   jro.JetEngine
jro.CompactDatabase   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source= "   &   App.Path   &   "\data\osm.mdb;Persist   Security   Info=False;jet   oledb:database   password=**** ",   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=c:\backup\ "   &   Format(Now,   "YYYYMMDDHHMMSS ")   &   ".mdb;Jet   OLEDB:Engine   Type=5 "

1.请问如何能将备份库也加上密码,如不能备份时便有密码,可否用VB命令给MDB文件加密码.
2.Engine   Type=5,再请问这个Engine   Type各值分别是何意思,
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
回复次数:8
  • yoki
  • (小马哥--鬓微霜,又何妨)
  • 等 级:
  • 3

#1楼 得分:10回复于:2003-12-08 18:35:44 Dim   db   As   Database
Set   db   =   OpenDatabase(App.Path   &   "\test.mdb ",   True,   False,   ";pwd=oldpwd ")
db.NewPassword   "oldpwd ",   "newpwd "    
'取消密码     db.NewPassword   "oldpwd ",   " "    
db.Close
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐:用VarPtr传给CopyMemory拷贝字符串 为啥结果不正确
  • yoki
  • (小马哥--鬓微霜,又何妨)
  • 等 级:
  • 3

#2楼 得分:0回复于:2003-12-08 18:44:37 如何用ado和jet   sql更改数据库的密码?
 
Sub   ADOAddPW()
      Dim   cn   As   ADODB.Connection
      Dim   newpassword   As   String
      Dim   NotValid   As   Integer
      Dim   sqlExecStr   As   String

      Set   cn   =   CurrentProject.Connection
      On   Error   Resume   Next

      '   测试数据库是否以独占方式打开
      If   cn.Mode   <>   12   Then
            MsgBox   "老兄,要改密码先的把数据库独霸(独占方式打开)了才行 ",   vbCritical
            Exit   Sub
      End   If
         
RetryPassword:
      newpassword   =   InputBox( "劳您贵手,打个密码进来吧 ",   "老兄,可要记住你的密码阿! "   _
                ,   "新的数据库密码 ")


     
      Select   Case   newpassword
     
      '   这里,你如果按了取消
     
        Case   "新的数据库密码 "
                MsgBox   "没有密码,俺不干 "
                Exit   Sub
               
      '   你按了ok
     
        Case   " "
              NotValid   =   MsgBox( "没密码俺不干 "   &   Chr(10)   &   Chr(13)   &   _
              "真的决定改了吗? ",   vbCritical   +   vbYesNo)
              If   NotValid   =   6   Then
                GoTo   RetryPassword
              Else
                Exit   Sub
              End   If
             
       
        Case   Else
              sqlExecStr   =   "ALTER   Database   Password   "   &   newpassword   &   "`` "
              CurrentProject.Connection.Execute   sqlExecStr
              MsgBox   "Okey "
                                         
        End   Select
           
End   Sub


'下面是去掉密码

Sub   ResetDBPassword()
      Dim   cn   As   ADODB.Connection
      Dim   sqlExecStr   As   String
      Dim   ResetQuestion   As   Integer
     
      Set   cn   =   CurrentProject.Connection
      On   Error   Resume   Next
     
      '   测试数据库是否以独占方式打开
      If   cn.Mode   <>   12   Then
            MsgBox   "老兄,要改密码先的把数据库独霸(独占方式打开)了才行 ",   vbCritical
            Exit   Sub
      End   If
      ResetQuestion   =   MsgBox( "重设吗 "   &   _
                        Chr(10)   &   Chr(13)   &   "空密码喽 ",   vbQuestion   +   vbYesNo,   _
                        "去掉密码 ")

       
        If   ResetQuestion   =   6   Then
                sqlExecStr   =   "ALTER   DATABASE   PASSWORD   ``   DBPassword "
                CurrentProject.Connection.Execute   sqlExecStr
                MsgBox   "没了 "
        Else
                MsgBox   "还是有密码 "
                Exit   Sub
        End   If

End   Sub