Kaup, Chester
Chester_Kaup at kindermorgan.com
Tue Dec 18 14:57:03 CST 2007
I am looking for some ideas on how to compact and repair nightly (2:00 AM) a database that is closed. The compacted database needs to have the same name as the original one. I had thought about using windows scheduler somehow to do this. I can across the following code but access stops and must exit when it gets to the line. DBEngine.CompactDatabase FilePath & OriginalFile, FilePath & _ FileWithoutExtention & "Temp.mdb" Here is all the code: Public Function cmdCompact() On Error GoTo Err_cmdCompact Dim DateUnderscore As String Dim ExecutionMacro As String Set DB = CurrentDb DateUnderscore = Month(Date) & "_" & Day(Date) & "_" & Year(Date) FilePath = Mid(DB.Name, 1, Len(DB.Name) - Len(Dir(DB.Name))) OriginalFile = "Sacroc.mdb" FileWithoutExtention = Left(OriginalFile, InStr(OriginalFile, ".") - 1) DoCmd.Hourglass True TryAgain: 'Compact the Back-End database to a temp file. DBEngine.CompactDatabase FilePath & OriginalFile, FilePath & _ FileWithoutExtention & "Temp.mdb" 'Delete the previous backup file if it exists. If Dir(FilePath & FileWithoutExtention & ".bak") <> "" Then Kill FilePath & FileWithoutExtention & ".bak" End If 'Rename the current database as backup and rename the temp file to 'the original file name. Name FilePath & OriginalFile As FilePath & FileWithoutExtention & ".bak" Name FilePath & FileWithoutExtention & "Temp.mdb" As FilePath & _ OriginalFile DoCmd.Hourglass False Exit_cmdCompact: Exit Function Err_cmdCompact: If Err.Number = 3356 Then Resume TryAgain ElseIf Err.Number = 3045 Then Resume TryAgain Else MsgBox Err.Number & ": " & Err.Description Resume Exit_cmdCompact End If Chester Kaup Engineering Technician Kinder Morgan CO2 Company, LLP Office (432) 688-3797 FAX (432) 688-3799 No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced.