程序: 创建、压缩Access数据库并修改密码演示

原创 2004年10月27日 14:05:00

* --------------------------------------------
* 程序: 创建、压缩Access数据库并修改密码演示
* 设计: 红雨
* --------------------------------------------
Local lcMdbFile, lcRetuStr
lcMdbFile = [C:/Temp/TestCreaMdbFile.mdb]
lcPswd1 = [test1]
lcPswd2 = [test2]
lcPswd3 = [test3]
lcRetuStr = [创建、压缩Access数据库并修改密码演示:] + Chr(13)

If CreateMDB( lcMdbFile, lcPswd1)
    lcRetuStr = lcRetuStr + Chr(13) + [1、创建数据库成功         - 密码: ] + lcPswd1
    If CompactMDB( lcMdbFile, lcPswd1, lcPswd2 )
        lcRetuStr = lcRetuStr + Chr(13) + [2、压缩并修改密码成功     - 密码: ] + lcPswd2
        If ChangeMdbPassword( lcMdbFile, lcPswd2, lcPswd3 )
            lcRetuStr = lcRetuStr + Chr(13) + [3、单独修改数据库密码成功 - 密码: ] + lcPswd3
        Else
            lcRetuStr = lcRetuStr + Chr(13) + [3、单独修改数据库密码失败]
        Endif
    Else
        lcRetuStr = lcRetuStr + Chr(13) + [2、压缩并修改密码失败]
    Endif
Else
    lcRetuStr = lcRetuStr + Chr(13) + [1、创建数据库失败]
Endif

= MessageBox( lcRetuStr, 0+64+0, [红雨提示] )
Return

* --------------------------------------------
Function CreateMDB( tcMdbFile, tcPswdStr )
    * 创建 Access 数据库文件(.mdb)
    Local IsOK
    IsOK = .F.
    tcMdbFile = iif(Type([tcMdbFile])=[C], tcMdbFile, [])
    tcPswdStr = iif(Type([tcPswdStr])=[C], tcPswdStr, [])
    If File(tcMdbFile)
        Erase (tcMdbFile)
    Endif
    If !File(tcMdbFile)
        IsOK = .T.
        Local loEngine, lcOldError, lcCmdStrs
        lcOldError = On([ERROR])
        On Error IsOK = .F.
        loCatalog = CreateObject( [ADOX.Catalog] )
        lcCmdStrs = [Provider=Microsoft.Jet.OLEDB.4.0] ;
            + [;Data Source=] + tcMdbFile ;
            + [;Jet OLEDB:Database Password=] + tcPswdStr
        loCatalog.Create( lcCmdStrs )
        Release loCatalog
        loCatalog = Null
        On Error &lcOldError.
    Endif
    Return IsOK and File(tcMdbFile)
Endfunc

* --------------------------------------------
Function CompactMDB ( tcMdbFile, tcOldPswd, tcNewPswd )
    * 压缩 Access 数据库并设置密码
    Local IsOK
    IsOK = .F.
    tcMdbFile = iif(Type([tcMdbFile])=[C], tcMdbFile, [])
    tcOldPswd = iif(Type([tcOldPswd])=[C], tcOldPswd, [])
    tcNewPswd = iif(Type([tcNewPswd])=[C], tcNewPswd, tcOldPswd)
    If File( tcMdbFile )
        IsOK = .T.
        Local loEngine, lcTmpFile, lcOldError, lcCompOldStr, lcCompNewStr
        lcOldError = On([ERROR])
        On Error IsOK = .F.
        lcTmpFile = Addb(JustPath(tcMdbFile)) + subs(Sys(2015),3) + [.mdb]
        Rename (tcMdbFile) To (lcTmpFile)
        If !File(tcMdbFile) and File(lcTmpFile)
            lcCompOldStr = [Provider=Microsoft.Jet.OLEDB.4.0] ;
                +   [;Data Source=] + lcTmpFile ;
                +   [;Jet OLEDB:Database Password=] + tcOldPswd
            lcCompNewStr = [Provider=Microsoft.Jet.OLEDB.4.0] ;
                +   [;Data Source=] + tcMdbFile ;
                +   [;Jet OLEDB:Database Password=] + tcNewPswd
            loEngine = CreateObject( [JRO.JetEngine] )
            loEngine.CompactDatabase( lcCompOldStr, lcCompNewStr )
            Release loEngine
            loEngine = Null
            If File(tcMdbFile)
                Erase (lcTmpFile)
            Else
                Rename (lcTmpFile) To (tcMdbFile)
            Endif
        Else
            IsOK = .F.
        Endif
        On Error &lcOldError.
    Endif
    Return IsOK and File(tcMdbFile)
Endfunc

* --------------------------------------------
Function ChangeMdbPassword ( tcMdbFile, tcOldPswd, tcNewPswd )
    * 修改 Access 数据库的密码,必须独占打开数据库,使用前请确保没有其他程序使用数据库
    Local IsOK
    IsOK = .F.
    lcRetuStr = []
    tcMdbFile = iif(Type([tcMdbFile])=[C], tcMdbFile, [])
    tcOldPswd = iif(Type([tcOldPswd])=[C], tcOldPswd, [])
    tcNewPswd = iif(Type([tcNewPswd])=[C], tcNewPswd, [])
    If File( tcMdbFile )
        IsOK = .T.
        Local loADODB, lcOldError
        lcOldError = On([ERROR])
        On Error IsOK = .F.
        loADODB = CreateObject( [ADODB.Connection] )
        loADODB.Mode = 12
        loADODB.Provider = [Microsoft.Jet.OLEDB.4.0]
        loADODB.Properties([Jet OLEDB:Database Password]) = tcOldPswd
        loADODB.Open([Data Source=] + tcMdbFile)
        loADODB.Execute('ALTER DATABASE PASSWORD [' + tcNewPswd + '][' + tcOldPswd + ']')
        loADODB.Close
        Release loADODB
        loADODB = Null
        On Error &lcOldError.
    Endif
    Return IsOK
Endfunc

* --------------------------------------------

c# .accdb格式access数据库压缩

1.安装nuget程序包 Microsoft.Office.Interop.Access.Dao 2.编写代码string tempFile = Path.Combine(Path.GetDirect...
  • xinghuo1
  • xinghuo1
  • 2017年04月17日 10:00
  • 368

VB压缩/修复Access数据库操作源代码

在Access数据库操作时经常数据库经常会由于操作频繁而出现各种问题.以及数据库无限的增大.为了不影响使用我们需要对数据库进行压缩/修复.以下代码就是用VB压缩并且修复Access数据库德 代码.大家...
  • cncco
  • cncco
  • 2007年09月27日 18:36
  • 3044

Access数据库的建立或压缩

% #######以下是一个类文件,下面的注解是调用类的方法################################################ # 注意:如果系统不支持建立Scripti...
  • airweilai
  • airweilai
  • 2008年04月21日 11:44
  • 332

C#压缩Access数据库

        ///         /// 压缩数据库        ///         /// 数据库链接        /// 要压缩的MDB文件的全名        static voi...
  • rjzhang
  • rjzhang
  • 2006年07月31日 17:26
  • 618

C++ 调用Access数据库接口,压缩数据库

1. Access数据库频繁的插入、查询操作之后,会生成大量的垃圾数据,造成该数据库mdb文件增大,从而影响软件的读取等操作; 2. Access数据库软件自带了“压缩/修复”功能,通过这个功能可以删...
  • zyjj_99
  • zyjj_99
  • 2017年02月10日 17:29
  • 747

VB 压缩Access数据库

工程-引入 Microsoft Jet and Replication Objects Library Private Sub Command1_Click()Dim FIXDB As New JRO...
  • jyh_jack
  • jyh_jack
  • 2008年03月24日 16:29
  • 737

vb.net压缩access文件(.accdb)

vb.net压缩access文件(.accdb) 由于access文件(.accdb)会记录操作,所以即使执行了delete数据的处理,该文件的大小还是会不断增加. 解决思路:将原有的acce...
  • bigheadsheep
  • bigheadsheep
  • 2012年07月03日 10:59
  • 1175

asp,access数据库备份压缩还原代码

   新建代码到data_s.asp文件 数据库管理系统
  • mastermanager
  • mastermanager
  • 2008年04月24日 14:10
  • 804

有关Access的压缩和修复数据库功能

 用过Access数据库的朋友一定知道有个“压缩和修复数据库”的功能。 为什么要 “压缩和修复数据库”首先是当然是压缩,减少文件大小。因为Access是一种文件型数据库,它所有的数据其实都是存储在一个...
  • tjianliang
  • tjianliang
  • 2008年07月23日 18:27
  • 8548

C#压缩Access数据库详细介绍

C#语言有很多值得学习的地方,这里我们主要介绍C#压缩Access数据库,包括介绍通过ProgID来访问COM对象等方面。  下面这段描述C#压缩Access数据库,不管它是一个简单的".mdb"还是...
  • songkexin
  • songkexin
  • 2009年12月31日 09:23
  • 2628
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序: 创建、压缩Access数据库并修改密码演示
举报原因:
原因补充:

(最多只允许输入30个字)