[AccessD] BE, Back Up Question

Robert Gracie Subscriptions at servicexp.com
Sat May 17 21:02:17 CDT 2003


I'm trying to backup an open split back-end using the code below. This is a
"third" db that is opening up a back-end and copying the tables and data to
a newly created db. However I keep getting this error.

7874 SXP Maintenance System can't find the object 'Customer.' Note: SXP
Maintenance is the name of the calling db

My code keeps looking at the current db for the tables. If I copy the table
into this db, all works well..

Help would be much appreciated at this point... Keep in mind this is a very
first revision...:-)

    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim x As Integer
    Dim Wksp As DAO.Workspace
    Dim CurrentDatabase As DAO.Database
    Dim MyDatabase As DAO.Database
    Dim MyContainer As DAO.Container
    Dim MyDocument As Document
    Dim I As Integer
    Dim J As Integer
    Dim txtTable As String
    Dim strdbtoSaveName As String
    Dim strSavedbtoName As String
    Dim strdbtoSavePath As String
    Dim strSavedbtoPath As String
    Dim strSavetoCompleteString As String
    Dim strShortDate As String
    Dim strLongDate As String
    Dim strSaveName As String
    Dim intSaveNameFail As String
    Dim strSaveNamePath As String
    Dim strTestFile As String


    Set db = CurrentDb
    Set rst = db.OpenRecordset("tblSysBU", dbOpenDynaset)

    strLongDate = Format(Date, "mmmm d, yyyy")
    strShortDate = Format(Date, "m-d-yyyy")

    With rst
      If .RecordCount > 0 Then
        .MoveFirst
            Do Until .EOF
                'lets get the link information from the table
                strdbtoSaveName = !dbtoSaveName
                strSavedbtoName = !SavedbtoName
                strdbtoSavePath = !dbtoSavePath
                strSavedbtoPath = !SavedbtoPath

                strSavetoCompleteString = strSavedbtoPath & "\" &
strSavedbtoName


    Set Wksp = DBEngine.Workspaces(0)  'OpenDatabase(strdbtoSavePath)
    Set CurrentDatabase = Wksp.OpenDatabase(strdbtoSavePath)


    'Check for existence of previously backed Up DB.
    'and append an incremented number to save name if found
      strSaveName = strSavedbtoName
      strSaveName = strSaveName & ".mdb"
      I = 2
      intSaveNameFail = True

      Do While intSaveNameFail
         strSaveNamePath = strSavedbtoPath & strSaveName
         strTestFile = Nz(Dir(strSaveNamePath))

         If strTestFile = strSaveName Then

            'Create new save name with incremented number
            intSaveNameFail = True
            strSaveName = strSavedbtoName & CStr(I)
            strSaveName = strSaveName & ".mdb"
            strSaveNamePath = strSavedbtoPath & strSaveName
            I = I + 1
         Else
            intSaveNameFail = False
         End If
      Loop

    Set MyDatabase = Wksp.CreateDatabase(strSaveNamePath, DB_LANG_GENERAL)
    MyDatabase.Close

    For J = 0 To CurrentDatabase.Containers.Count - 1
        Set MyContainer = CurrentDatabase.Containers(J)
        If MyContainer.Name = "Tables" Then
            For I = 0 To MyContainer.Documents.Count - 1
                Set MyDocument = MyContainer.Documents(I)
                txtTable = MyDocument.Name
                If Left$(txtTable, 4) <> "Msys" And Left$(txtTable, 3) <>
"qry" Then
                    DoCmd.CopyObject strSaveNamePath, , acTable,
MyDocument.Name
                    DoEvents
                End If
            Next I
        End If
    Next J

            .MoveNext
        Loop
     End If
End With

cmdOK_Click_Exit:
    DoCmd.SetWarnings True
    Exit Function

cmdOK_Click_Err:
If Err = 3204 Or Err = 3151 Or Err = 91 Or Err = 7874 Or Err = 3064 Or Err =
3011 Then
 Debug.Print (Err.Number & " " & Err.Description)
Resume Next
 Else
     MsgBox Err.Description
 End If




More information about the AccessD mailing list