John Ruff
papparuff at comcast.net
Mon Nov 21 15:16:39 CST 2005
I still use the function today.
The variable strOldDb is the fully qualified directory and name of the
database to compact. The variable strNewDB is the fully qualified directory
and temporary db name to compact the strOldDb to. Both directories should be
the same so the Name function will work properly.
Public Function CompactDB_JVR(strOldDb As String, strNewDB as String) As
Boolean
'---------------------------------------------------------------------------
------------
' Procedure : CompactDB_JVR
' DateTime : 7/14/2004 08:43
' Author : John Ruff
' Purpose : Compact selected databases
' Note : Set Reference to Microsoft Scripting Runtime Library
' and Microsoft Jet And Replication Objects X.X Library
'---------------------------------------------------------------------------
'
Dim fso As New FileSystemObject
Dim strNewDB As String
On Error GoTo CompactDB_JVR_ERR
' If the strNewDB exists, delete it;
' otherwise an error will occur trying to compact the database
If fso.FileExists(strNewDB) Then
fso.DeleteFile (strNewDB)
End If
fOK = PerformCompact_JVR(StrOldDb, strNewDB)
' If the compact is successful, delete the old database and rename the
new database
If fOK = True Then
fso.DeleteFile (StrOldDb)
Name strNewDB As StrOldDb
End If
CompactDB_JVR = True
CompactDB_JVR_EXIT:
On Error Resume Next
Exit Function
CompactDB_JVR_ERR:
CompactDB_JVR = False
MsgBox "Error " & Err.Number & _
" (" & Err.Description & ") in procedure " & _
"CompactDB_JVR of Module Module1", _
Title:="CompactDB_JVR Error"
Resume CompactDB_JVR_EXIT
End Function
John V. Ruff - The Eternal Optimist J
"Commit to the Lord whatever you do,
and your plans will succeed." Proverbs 16:3
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Hindman
Sent: Monday, November 21, 2005 1:10 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Compact by code
http://www.rogersaccesslibrary.com/Otherdownload.asp?SampleName='BackUpManag
er.mdb'
William
----- Original Message -----
From: "John Colby" <jwcolby at ColbyConsulting.com>
To: "'Access Developers discussion and problem solving'"
<accessd at databaseadvisors.com>
Sent: Monday, November 21, 2005 3:02 PM
Subject: [AccessD] Compact by code
> Does anyone have code to compact an external database? I am working on a
> transformation / migration system. Append operations go to an external
> database using the IN 'SomeDatabase' clause in SQL. The results are a
> huge
> database bloat, not sure if it has anything to do with the IN clause or
> not,
> but huge none the less.
>
> So I need to do a compact on that backup database from code.
>
> I see two methods in help - using DAO DBEngine, the other uses the
> JetEngine
> object.
>
> I'm just looking for any pointers from anyone who does this already.
>
> John W. Colby
> www.ColbyConsulting.com
>
> Contribute your unused CPU cycles to a good cause:
> http://folding.stanford.edu/
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com