G
Guest
I am trying to compact another database from VBA, but when I run the
following code, I get this error:
3734 The database has been placed in a state by user 'me' on machine
'mymachine' that prevents it from being opened or locked.
Code:
Public Sub compact_delete()
Dim subDBNAME As String
Dim tbl As Variant
Dim tbllist As Variant
Dim tblbk As String
Dim tblname As Variant
Dim tblname2 As Variant
Dim masterdb As Database
Dim compactname As String
Dim backupname As String
Dim dbname As String
'Step .5 - Build constants
On Error GoTo errhand
'File name
subDBNAME = "F:\projects\Issue Track Projects\IT-001-000X- archive and
others\Comerica Inc Issue Tracking Database"
dbname = subDBNAME & ".mdb"
compactname = subDBNAME & ".cpk"
backupname = subDBNAME & ".old"
'tables to be archived
tbllist = Array("[Master Recommendation Table].[Issue Reference
Number]", "tblMitigatingControl.[Ref Tracking]",
"tblInternalComments.[Tracking Number]", "tblPostedComments.[Ref Tracking]",
"tblClientResponse.[Ref Tracking]", "tmpISSUETYPETABLE.txtREF_TRACK_NO")
Set masterdb = OpenDatabase(dbname)
'For Each tbl In tbllist
' If InStr(tbl, " ") < InStr(tbl, ".") And InStr(tbl, " ") <> 0 Then
' tbl = Mid(tbl, 2, InStr(tbl, ".") - 3)
' Else
' tbl = Mid(tbl, 1, InStr(tbl, ".") - 1)
' End If
' tblbk = tbl & "_bk"
' masterdb.TableDefs.Delete tblbk
'Next
masterdb.Close
Set masterdb = Nothing
FileCopy dbname, backupname
DBEngine.CompactDatabase dbname, compactname
FileCopy compactname, dbname
errhand:
Debug.Print Err.Number; Err.Description
End Sub
I eventually want to put the delete tables back in, but won't until I get
this fixed. Thanks
following code, I get this error:
3734 The database has been placed in a state by user 'me' on machine
'mymachine' that prevents it from being opened or locked.
Code:
Public Sub compact_delete()
Dim subDBNAME As String
Dim tbl As Variant
Dim tbllist As Variant
Dim tblbk As String
Dim tblname As Variant
Dim tblname2 As Variant
Dim masterdb As Database
Dim compactname As String
Dim backupname As String
Dim dbname As String
'Step .5 - Build constants
On Error GoTo errhand
'File name
subDBNAME = "F:\projects\Issue Track Projects\IT-001-000X- archive and
others\Comerica Inc Issue Tracking Database"
dbname = subDBNAME & ".mdb"
compactname = subDBNAME & ".cpk"
backupname = subDBNAME & ".old"
'tables to be archived
tbllist = Array("[Master Recommendation Table].[Issue Reference
Number]", "tblMitigatingControl.[Ref Tracking]",
"tblInternalComments.[Tracking Number]", "tblPostedComments.[Ref Tracking]",
"tblClientResponse.[Ref Tracking]", "tmpISSUETYPETABLE.txtREF_TRACK_NO")
Set masterdb = OpenDatabase(dbname)
'For Each tbl In tbllist
' If InStr(tbl, " ") < InStr(tbl, ".") And InStr(tbl, " ") <> 0 Then
' tbl = Mid(tbl, 2, InStr(tbl, ".") - 3)
' Else
' tbl = Mid(tbl, 1, InStr(tbl, ".") - 1)
' End If
' tblbk = tbl & "_bk"
' masterdb.TableDefs.Delete tblbk
'Next
masterdb.Close
Set masterdb = Nothing
FileCopy dbname, backupname
DBEngine.CompactDatabase dbname, compactname
FileCopy compactname, dbname
errhand:
Debug.Print Err.Number; Err.Description
End Sub
I eventually want to put the delete tables back in, but won't until I get
this fixed. Thanks