Newsgroup: it.comp.appl.access
Titolo: BackEnd Lento

Salve a tutto il NG;
per necessità ho un front end che deve attingere dati da due back end
posizionati l'uno su un pc differente dall'altro.
Il problema che sorto è la lentezza esasperante durante la lettura di uno
dei due backend.
Individuato il BE  che compromette la velocità del FE mi chiedevo:
c'è la possibilità di importare le tabelle del BE lento nel BE che va bene
e dargli la possibilità, su apertura del front end di aggiornarle con il
BE originale?
Mi spego meglio: sul BE lento ho Tab1, che fa capo ad un altro FE che ne
immette i dati quotidianamente, vorrei importare nell'altro BE, quello che
non mi dà problemi di lentezza, Tab1 che però mi si deve sincronizzare con
il BE originale tutte le volte che apro il nuovo FE.
Help.
Grazie anticipatamente.
Lucio
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it




Non sono sicuro di aver ben compreso il tuo problema, ma nessuno ti vieta di
collegare quella tabella di quel BE al FE; potresti, all'apertura del FE,
importare quella tabella tramite il metodo TransferDatabase (vedi help);
naturalmente prima di effettuare l'importazione verificherai se nel FE già
esiste una tabella con quel nome ed eventualmente la eliminerai.
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------

 esiste una tabella con quel nome ed eventualmente la eliminerai.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 



Per prima cosa quando rispondi scrivi DOPO e non prima del testo dei
messaggi precedenti.
In un modulo del tuo FE inserisci questa funzione:
Public Function EsisteOggetto(TipoOggetto As String, NomeOggetto As String)
As Integer
On Error Resume Next
Dim OggettoTrovato As Integer, CercaOggetto As String, NumOggetto As Integer
Dim db As DAO.Database, t As DAO.TableDef
Dim Q As DAO.QueryDef, C  As DAO.Container
Dim msg As String
OggettoTrovato = False
Set db = CurrentDb()
Select Case TipoOggetto
Case "Tabella"
    CercaOggetto = db.TableDefs(NomeOggetto).Name
Case "Query"
    CercaOggetto = db.QueryDefs(NomeOggetto).Name
Case Else
    If TipoOggetto = "Maschera" Then
        NumOggetto = 1
    ElseIf TipoOggetto = "Modulo" Then
        NumOggetto = 2
    ElseIf TipoOggetto = "Report" Then
        NumOggetto = 4
    ElseIf TipoOggetto = "Macro" Then
        NumOggetto = 5
    Else
        msg = "Il nome oggetto """ & TipoOggetto & """ non è un valido"
        msg = msg & " argomento per la funzione EsisteOggetto!"
        MsgBox msg, 16, "Funzione EsisteOggetto"
        Exit Function
    End If
    Set C = db.Containers(NumOggetto)
    CercaOggetto = C.Documents(NomeOggetto).Name
End Select
If Err = 3265 Or CercaOggetto = "" Then
    OggettoTrovato = False
Else
    OggettoTrovato = True
End If
    EsisteOggetto = OggettoTrovato
End Function
Se vuoi importare nell FE attivo una tabella chiamata Tabella2.
Se il databse che contiene tale tabella ha il seguente nome e percorso:
C:\MiaDirectory\MioDatabase.mdb
Se vuoi che la tabella importata continui a chiamarsi Tabella2.
Memorizza in un modulo del tuo FE la seguente funzione:
Public Function ImportaTabella()
Dim Path As String
Path = "C:\MiaDirectory\MioDatabase.mdb"
If EsisteOggetto("Tabella", "Tabella2") = True Then
    DoCmd.DeleteObject acTable, "Tabella2"
End If
DoCmd.TransferDatabase acImport, "Microsoft Access", _
Path, acTable, "Tabella2", "Tabella2"
End Function
A questo punto creati una macro chiamata AutoExec che contiene l'azione
EseguiCodice e nel cui nome funzione scriverai ImportaTabella().
Così facendo, ogni volta che si apre il FE, Access verificherà se esiste una
tabella chiamata Tabella2, nel qual caso la elimina, quindi reimporta nel FE
la tabella Tabella2 dal database che ha come nome e path
C:\MiaDirectory\MioDatabase.mdb .
