Home
Search
 
What's New
Index
Books
Links
Q & A
Newsletter
Banners
 
Feedback
Tip Jar
 
C# Helper...
 
XML RSS Feed
Follow VBHelper on Twitter
 
 
 
MSDN Visual Basic Community
 
 
 
 
 
TitleUse DAO to compact an Access database
DescriptionThis example shows how to use DAO to compact an Access database in Visual Basic 6.
KeywordsDAO, compact, database, Access
CategoriesDatabase
 
When you click the Make Values button, the program adds a bunch of records to a database. When you click Delete Values, it deletes them. At this point, the database contains a lot of unused space.

When you click the Compact button, the program uses DAO's DBEngine object to compact the database and copy it into a temporary file. It then deletes the original database and renames the temporary file to the original database's name.

 
Private Sub cmdMakeValues_Click()
Dim db As DAO.Database
Dim num_values As Long
Dim i As Long
Dim txt As String

    num_values = CLng(txtNumValues.Text)
    Set db = DBEngine(0).OpenDatabase(txtDatabase.Text)
    txt = "'" & String$(254, "x") & "'"
    For i = 1 To num_values
        db.Execute "INSERT INTO ValueTable VALUES(" & i & _
            ", " & txt & ")"
        If i Mod 10 = 0 Then Me.Caption = i
    Next i
    db.Close

    MsgBox "File size: " & FileLen(txtDatabase.Text)
End Sub

Private Sub cmdDeleteValues_Click()
Dim db As DAO.Database

    Set db = DBEngine(0).OpenDatabase(txtDatabase.Text)
    db.Execute "DELETE FROM ValueTable"
    db.Close

    MsgBox "File size: " & FileLen(txtDatabase.Text)
End Sub

Private Sub cmdCompact_Click()
Dim db_name As String
Dim temp_name As String

    db_name = txtDatabase.Text
    temp_name = db_name & ".temp"
    DAO.DBEngine.CompactDatabase db_name, temp_name
    Kill db_name
    Name temp_name As db_name

    MsgBox "File size: " & FileLen(db_name)
End Sub
 
 
Copyright © 1997-2010 Rocky Mountain Computer Consulting, Inc.   All rights reserved.
  Updated