Link to home
Start Free TrialLog in
Avatar of majala
majala

asked on

Compacting database

I'm using VB6 pro edition.

I try to compact my Access-database every time when I close my program.
Way I tryed to do it:

CompactDatabase App.Path & "/database.mdb", App.Path & "/newdatabase.mdb"
.
.

But when I do this vb gives me an error:
sub of function not defined...

What could be wrong? I remember that I have used this method sometimes before without any problems...

Thanks in advance!
Avatar of cquinn
cquinn
Flag of United Kingdom of Great Britain and Northern Ireland image

dbengine.compactdatabase
Avatar of majala
majala

ASKER

Now I got an error:
(after using dbengine.compactdatabase)

Run-time error '424':
Object required
ASKER CERTIFIED SOLUTION
Avatar of pookytoo
pookytoo
Flag of Netherlands image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Try using \ instead of /
Avatar of majala

ASKER

Now I got an error which says that database is already open. I have DbGrid and Data controller in my form which is connected to that database. So I have close that connection before I can compact that database. How I close connection?
   Dim db As String
    db = Data1.DatabaseName
    Data1.DatabaseName = ""
    Data1.Refresh
    DBEngine.CompactDatabase "olddb", "newdb"
    Data1.DatabaseName = db

where data1 is the name of your data controler.
and refresh after setting back the databasename, of course.
That should save you.

Avatar of majala

ASKER

I tryed that your way to close a database and I got that same error I described in a previous message. Anyway I tryed this:
Data1.Database.close

and it worked.

Try using \ instead of /