Newsgroup: it.comp.appl.access
Titolo: Esportare Tabelle Collegate

Salve ragazzi, vorrei sottoporvi un piccolo mio grande quesito... Allora, 
possiedo un database con delle tabelle collegate, solo 2 di queste mi 
interessa esportale in un'altro file .mdb opportunamente creato con una 
funzione che ad una certa ora crea e mette come nome del salvataggio, data e 
ora dello stesso (una specie di backup a tempo). Il problema è che poi 
questo database quando viene creato a sua volta, ha il collegamento al file 
originale (è questo non va bene), mentre se eseguo delle query e faccio la 
stessa procedura, comunque perdo gli attributi delle tabelle, cioè valore 
predefinito, indicizzato etc.. Come posso fare visto che comunque non posso 
copiare l'intero file che contiene le tabelle e poi rinominarlo ? E' 
possibile esportare delle tabelle di un database che non sia quello aperto ? 
Non so se sono riuscito a farmi capire, comunque grazie a chi vorrà 
dedicarmi un pò di tempo. 

 ha scritto nel messaggio 
news:my5ld.316016$35.14...@news4.tin.it...

potresti creare una tabella d'appoggio o  popolarne una già creata tramite 
una query di accodamento. poi puoi trasferire questa nel nuovo db e 
svuotarla tramite una query di eliminazione.

 ha scritto nel messaggio
news:my5ld.316016$35.14...@news4.tin.it...

Dato che ipotizzo tu sappia la LOCAZIONE(path) del Db remoto
al quale hai le Tabelle Collegate puoi usare l'Automazione di Access
ed accedere al Metodo TransfertDatabase in questo modo:
Dim objAccess as Access.Application
 Set objAccess = New Access.Application
        With objAccess
            .OpenCurrentDatabase strMDB
            DoCmd.TransferDatabase acExport, "Microsoft Access", _
             "DATABASE DI DESTINAZIONE", acTable, "NomeTabella", _
             "NomeTabella"
        End With
    objAccess.Quit
    Set objAccess = Nothing
Ciao
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

 ha scritto nel messaggio 
news:cn2pju$ogi$1...@hulme.interac.it...

Si, però forse troppo lunga..... 

 ha scritto nel messaggio 
news:cn309l$dnt$1...@lacerta.tiscalinet.it...

Grazie.... Provo e vi faccio sapere.... Grazie ancora !!! 

 ha scritto nel messaggio 
news:CDjld.163319$b5.80...@news3.tin.it...

Caro Alex, ho provato, ma purtroppo viene sempre fuori la storia del 
collegamento, cioè esporta in un nuovo mdb, proprio come voglio io, ma 
sempre tenendo collegata la tabella al mdb originale (e questo non va bene). 
Io in un primo momento avevo fatto così:
Private Sub Salvataggio_Click()
On Error GoTo ErroreDuplicato_click
Dim sPercorso As String
Dim AppAccess As Access.Application
Dim Salvataggio
Dim Oggetto, sOggetto, Ricavato, MultiploLettura, Lettura
Dim sTabellaOcchiali As String
Dim sTabellaAltro As String
    sPercorso = CurrentProject.Path & "\Salvataggi\Salvataggio del " & 
Format(Date, "dd") & "-" & Format(Date, "mm") & "-" & Format(Date, "yyyy") & 
" ore " & Format(Time, "hh:mm") & ".mdb"
        Set AppAccess = CreateObject("Access.Application")
            AppAccess.NewCurrentDatabase sPercorso
                AppAccess.CloseCurrentDatabase
sTabellaOcchiali = "SELECT [Movimenti Magazzino Occhiali].[Id Operatore], 
[Movimenti Magazzino Occhiali].Documento, [Movimenti Magazzino Occhiali].[Id 
Negozio]," & _
"[Movimenti Magazzino Occhiali].[Id Negozio Spostamento], [Movimenti 
Magazzino Occhiali].[Id Tipo Movimento], [Movimenti Magazzino 
Occhiali].Quantità," & _
"[Movimenti Magazzino Occhiali].Barcode, [Movimenti Magazzino 
Occhiali].[Codice a Barre], [Movimenti Magazzino Occhiali].[Descrizione 
Modello], [Movimenti Magazzino Occhiali].[Numero Modello]," & _
"[Movimenti Magazzino Occhiali].[Descrizione Colore], [Movimenti Magazzino 
Occhiali].[Codice Colore], [Movimenti Magazzino Occhiali].[Misura Calibro], 
[Movimenti Magazzino Occhiali].[Misura Ponte]," & _
"[Movimenti Magazzino Occhiali].[Lunghezza Asta], [Movimenti Magazzino 
Occhiali].[Prezzo Acquisto], [Movimenti Magazzino Occhiali].[Prezzo 
Vendita], [Movimenti Magazzino Occhiali].Division," & _
"[Movimenti Magazzino Occhiali].[Marca/Designer], [Movimenti Magazzino 
Occhiali].[Tipo Utente], [Movimenti Magazzino Occhiali].[Montaggio Lenti], 
[Movimenti Magazzino Occhiali].Materiale," & _
"[Movimenti Magazzino Occhiali].[Tipo Articolo], [Movimenti Magazzino 
Occhiali].[Utilizzo Articolo], [Movimenti Magazzino Occhiali].Fornitore, 
[Movimenti Magazzino Occhiali].Data," & _
"[Movimenti Magazzino Occhiali].[Note Spostamenti], [Movimenti Magazzino 
Occhiali].[Id Temporanea Carico], [Movimenti Magazzino Occhiali].[Id 
Movimento Magazzino]" & _
"INTO [Movimenti Magazzino Occhiali Salvataggio]FROM [Movimenti Magazzino 
Occhiali];"
sTabellaAltro = "SELECT [Movimenti Magazzino Altro].[Id Altro], [Movimenti 
Magazzino Altro].[Id Operatore], [Movimenti Magazzino Altro].[Id Negozio], 
[Movimenti Magazzino Altro].[Id Negozio Spostamento]," & _
"[Movimenti Magazzino Altro].[Id Tipo Movimento], [Movimenti Magazzino 
Altro].Documento, [Movimenti Magazzino Altro].Barcode, [Movimenti Magazzino 
Altro].[Codice a Barre], [Movimenti Magazzino Altro].Quantità," & _
"[Movimenti Magazzino Altro].[Prezzo Acquisto], [Movimenti Magazzino 
Altro].[Prezzo Vendita], [Movimenti Magazzino Altro].Marca, [Movimenti 
Magazzino Altro].Tipologia, [Movimenti Magazzino Altro].[Nome Articolo]," & 
_
"[Movimenti Magazzino Altro].[Raggio Base], [Movimenti Magazzino 
Altro].Diametro, [Movimenti Magazzino Altro].Sfera, [Movimenti Magazzino 
Altro].Cilindro, [Movimenti Magazzino Altro].Data," & _
"[Movimenti Magazzino Altro].Vuoto, [Movimenti Magazzino Altro].Vuoto1 INTO 
[Movimenti Magazzino Altro Salvataggio] FROM [Movimenti Magazzino Altro];"
DoCmd.SetWarnings False
DoCmd.RunSQL sTabellaOcchiali
DoCmd.RunSQL sTabellaAltro
                    DoCmd.TransferDatabase acExport, "Microsoft Access", 
sPercorso, acTable, "Movimenti Magazzino Occhiali Salvataggio", "Movimenti 
Magazzino Occhiali"
                    DoCmd.TransferDatabase acExport, "Microsoft Access", 
sPercorso, acTable, "Movimenti Magazzino Altro Salvataggio", "Movimenti 
Magazzino Altro"
 DoCmd.DeleteObject acTable, "Movimenti Magazzino Occhiali Salvataggio"
    DoCmd.DeleteObject acTable, "Movimenti Magazzino Altro Salvataggio"
        MsgBox "Salvataggio avvenuto con successo !!!", vbInformation, 
"Attenzione..."
ErroreDuplicato_click:
    If Err.Number = 7865 Then
MsgBox "Attenzione... E' stato già fatto un salvataggio meno di un minuto 
fa, attendere e riprovare...", vbCritical, "Attenzione..."
    End If
    Dim LetturaSalvataggiV
Dim OggettoV, sOggettoV, RicavatoV, MultiploLetturaV, LetturaV
    LetturaSalvataggiV = CurrentProject.Path & "\Salvataggi\"
        Set OggettoV = CreateObject("Scripting.FileSystemObject")
            Set sOggettoV = OggettoV.GetFolder(LetturaSalvataggiV)
                Set LetturaV = sOggettoV.files
                    For Each RicavatoV In LetturaV
                MultiploLetturaV = MultiploLetturaV & RicavatoV.Name
            MultiploLetturaV = MultiploLetturaV & ";"
        Next
    ElencoSalvataggi.RowSource = MultiploLetturaV
End Sub
...poi mi sono accorto che perdevo le proprietà dei campi (come già detto 
prima), quindi o risolvo esportando da un database una tabella contenuta in 
un'altro database in un'altro database ancora (scusate il gioco di parole), 
oppure, soluzione trovata mentre ti scrivo copia oggetto da... a .... che ne 
pensi ?
Ciao 


Se esegui con gli opportuni ritocchi la Routine sotto, che poi era la prima
cosa che ti ho indicato, non è posibile che mantenga il Collegamento, a
meno chè tu non abbia fatto esportare la Tabella Collegata, cosa che
ti ho premesso.
Devi puntare al BE e copiare quella del BE nel Database di Destinazione.
La tabella nel BE non è collegata, è residente....., quindi copiandola non
può assolutamente mantenere nessun Collegamento, quello è nel FE.
Sono sicuro tu abbia sbagliato qualcosa o frainteso il percorso giusto.
Ribadisco che questa è la strada corretta e deve funzionare, pertanto prova
a rivedere i concetti di base e rivedila...!!!
Dim objAccess as Access.Application
Set objAccess = New Access.Application
        With objAccess
'----------------------------------------------------------------
            'Questo database non è il FE, ma il BE dove hai la
            'Tabella Reale non il Collegamento......... ovvio che
            'se metti il percorso del FE commette l'errore che accennavi
'----------------------------------------------------------------


 ha scritto nel messaggio 
news:cn5f19$1bu$1...@lacerta.tiscalinet.it...

Ciao Alex, scusa per il ritardo ma sono stato fuori area per un pò.... 
Allora, sono completamente nel pallone, non riesco a capire dove mettere 
quello FE e quello BE, ho fatto diverse prove ma non ci sono riuscito, ormai 
sbaglio sempe allo stesso posto e non vedo dove. Comunque sono riuscito a 
risolvere lo stesso ottenendo con minor sforzo un risultato simile, per 
correttezza ti posto il codice:
Private Sub Salvataggio_Click()
On Error GoTo ErroreDuplicato_click
Dim sPercorso As String
Dim AppAccess As Access.Application
Dim Salvataggio
Dim Oggetto, sOggetto, Ricavato, MultiploLettura, Lettura
Dim sTabellaOcchiali As String
Dim sTabellaAltro As String
    sPercorso = CurrentProject.Path & "\Salvataggi\Salvataggio del " & 
Format(Date, "dd-mm-yyyy") & " ore " & Format(Time, "hh:mm") & ".mdb"
        Set AppAccess = CreateObject("Access.Application")
            AppAccess.NewCurrentDatabase sPercorso
                AppAccess.CloseCurrentDatabase
DoCmd.CopyObject sPercorso, "Movimenti Magazzino Occhiali", acTable, 
"Movimenti Magazzino Occhiali"
DoCmd.CopyObject sPercorso, "Movimenti Magazzino Altro", acTable, "Movimenti 
Magazzino Altro"
        MsgBox "Salvataggio avvenuto con successo !!!", vbInformation, 
"Attenzione..."
ErroreDuplicato_click:
    If Err.Number = 7865 Then
MsgBox "Attenzione... E' stato già fatto un salvataggio meno di un minuto 
fa, attendere e riprovare...", vbCritical, "Attenzione..."
    End If
    Dim LetturaSalvataggiV
Dim OggettoV, sOggettoV, RicavatoV, MultiploLetturaV, LetturaV
    LetturaSalvataggiV = CurrentProject.Path & "\Salvataggi\"
        Set OggettoV = CreateObject("Scripting.FileSystemObject")
            Set sOggettoV = OggettoV.GetFolder(LetturaSalvataggiV)
                Set LetturaV = sOggettoV.files
                    For Each RicavatoV In LetturaV
                MultiploLetturaV = MultiploLetturaV & RicavatoV.Name
            MultiploLetturaV = MultiploLetturaV & ";"
        Next
    ElencoSalvataggi.RowSource = MultiploLetturaV
End Sub
...codice più breve e stesso risultato !!! Grazie comunque per 
l'interessamento !!!
Ciao