压缩的代码:
'压缩数据(库通过引用DAO对象)
Private Sub ComPactMyDB(DBFileName As String)
Dim OldFile As String
Dim NewFile As StringOldFile = DBFileName '待压缩数据库文件名
NewFile = App.Path & "\tmp.mdb" '压缩后的数据库文件名DBEngine.CompactDatabase OldFile, NewFileKill OldFile '删除原来的文件
Name NewFile As OldFile '将压缩后的数据库文件名称改回去
End Sub

解决方案 »

  1.   

    ADO压缩不了ACCESS2000数据库,只能是Adox,具体代码你搜索一下这里,好多详细的代码,太晚了,我就不找了;
    改动密码,我只能是关注了;
      

  2.   

    This example is got from MSDN
    ==================================================================='Use ADOX:
    'User.ChangePassword OldPassword, NewPassword
    Sub GroupX()    Dim cat As ADOX.Catalog
        Dim usrNew As ADOX.User
        Dim usrLoop As ADOX.User
        Dim grpLoop As ADOX.Group
        
        Set cat = New ADOX.Catalog
        cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=c:\Program Files\" & _
            "Microsoft Office\Office\Samples\Northwind.mdb;" & _
            "jet oledb:system database=c:\samples\system.mdb"    With cat
            'Create and append new group with a string.
            .Groups.Append "Accounting"
           
            ' Create and append new user with an object.
            Set usrNew = New ADOX.User
            usrNew.Name = "Pat Smith"
            usrNew.ChangePassword "", "Password1"
            .Users.Append usrNew        ' Make the user Pat Smith a member of the
            ' Accounting group by creating and adding the
            ' appropriate Group object to the user's Groups
            ' collection. The same is accomplished if a User
            ' object representing Pat Smith is created and
            ' appended to the Accounting group Users collection
            usrNew.Groups.Append "Accounting"
          
            ' Enumerate all User objects in the
            ' catalog's Users collection.
            For Each usrLoop In .Users
                Debug.Print "  " & usrLoop.Name
                Debug.Print "    Belongs to these groups:"
                ' Enumerate all Group objects in each User
                ' object's Groups collection.
                If usrLoop.Groups.Count <> 0 Then
                    For Each grpLoop In usrLoop.Groups
                        Debug.Print "    " & grpLoop.Name
                    Next grpLoop
                Else
                    Debug.Print "    [None]"
                End If
            Next usrLoop        ' Enumerate all Group objects in the default
            ' workspace's Groups collection.
            For Each grpLoop In .Groups
                Debug.Print "  " & grpLoop.Name
                Debug.Print "    Has as its members:"
                ' Enumerate all User objects in each Group
                ' object's Users collection.
                If grpLoop.Users.Count <> 0 Then
                    For Each usrLoop In grpLoop.Users
                        Debug.Print "    " & usrLoop.Name
                    Next usrLoop
                Else
                    Debug.Print "    [None]"
                End If
            Next grpLoop
            
            ' Delete new User and Group objects because this
            ' is only a demonstration.
            .Users.Delete "Pat Smith"
            .Groups.Delete "Accounting"    End WithEnd Sub