Newsgroup: it.comp.appl.access
Titolo: FRONT END e BACK END ; AGGIORNARE IL PERCORSO DELLE TABELLE COLLEGATE. MM

Ciao, sono di nuovo io.
Ho diviso il mio DB in 2 file .mdb uno si chiama Back.mdb e l'altro
Front.mdb.
Volevo creare una procedura che in automatico all'apertura del Front mi
controlli il collegamento delle tabelle al file Back
e nel caso che il Front punta a un Back nella posizione errata mi chieda di
specificare tramite una file list (tipo risorse del computer) il percorso
relativo al file back.
Succesivamente mi deve in automatico ricoleggare tutte le tabelle del back
al front in modo da rendere operativo il DB.
Ho trovato qualcosa di simile ma non so adattarlo alle mie esigenze :
Private Sub Form_Open(Cancel As Integer)
Dim db As Database
Dim tabAllegata As TableDef
Dim i As Long
Dim Percorso As String
Set dbsFatt = CurrentDb
Percorso = InputBox("Inserire il percorso completo di nome del DataBase da
collegare", "Collega tabelle", "c:\db.mdb")
DoCmd.Hourglass True
If Percorso = "" Then
DoCmd.Hourglass False
Exit Sub
End If
With dbsFatt
For i = 0 To .TableDefs.Count - 1
If .TableDefs(i).Connect <> "" Then
.TableDefs(i).Connect = ";DATABASE=" & Percorso
.TableDefs(i).RefreshLink
End If
Next i
End With
Set dbsFatt = Nothing
End Sub
Fatemi sapere il vostro parere.
Grazie e ciao-

 End Sub
metti una form di avvio, tipo menù principale o di benvenuto con pulsanti
entra esci. All'evento apertura del menù o sul pulsante entra controlli se
le tabelle sono allegate, altrimenti lanci riallega. Potrebbe essere:
On Error GoTo gest_err
    Set rst = CurrentDb.OpenRecordset("Una delle tabelle")
'anche se andrebbe fatto per tutti, ma potresti accontentarti
    app = rst.EOF
    GoTo fine
gest_err:
    If Err = 3024 Or Err = 3044 Then
        If Riallega("Tabelle da allegare") = false Then
            msg = "Tabelle di lavoro non allegate!@Collegarsi al database "
            msg = msg & nometuoDB & "@L'elaborazione termina qui!"
        Else
            Exit Sub
        End If
    Else
        msg = "Errore di sistema n° " & Err & "@" & Err.Description & "@"
        msg = msg & "Contattare supporto informatico!"
    End If
    MsgBox msg, vbCritical, "Errore critico!"
    DoCmd.Close
    DoCmd.Close
    Application.Quit
fine:
    rst.Close
    Set rst = Nothing
Perchè riallega ha il parametro tabelle da allegare?
Perchè nelle mie applicazioni a volte ho tabelle allegate da diversi BE. In
questo caso la tua procedura fallirebbe quando cerchi di linkare una tabella
al BE sbagliato.
Tabelle da allegare è una tabella che contiene un campo con ogni record il
nome di una delle tabelle da allegare. Per ogni BE ho una di queste tabelle
contenitore diversa e chiamo riallega con parametro diverso. In riallega poi
apro il recordset associato al parametro passato e scorro le tabelle
contenute invece di ciclare su tutte le tabledefs
Se vuoi ti mando il modulo che contiene riallega e il codice per la finestra
di dialogo apri file
Antonio


Si grazie ti sarei molto grato,
l'indirizzo è 
mar...@libero.it

Antonio
Ho visto questo tuo msg solo oggi (tra l'altro ho dei problemi don i
newsgroup da quando Atlanet ha deciso di non fornire piů il servizio)
e ti chiederei di inviare anche a me il modulo di cui parli.
Grazie
Adriano
e-mail galad***NOSPAM***@
alma.it