Newsgroup: it.comp.appl.access
Titolo: Comando Docmd.CopyObject

Salve NG...
Sto facendo un programma di gestione dati con access 2000, capita che man
mano imparo cose nuove modifico le potenzialità delle maschere.
L'altra sera dopo la mia ultima Release del programma mi è venuta un idea
nuova, premetto che il mio programma è già distribuito fra i miei amici con
regolare setup e tutto cio che comporta l'istallazione del programma.
Ora non volendo mandare la nuovissima versione del gestionale via mail
[7,9Mb] (senza dati) ma solo le modifiche delle maschere [300Kb].... ho
pensato di farmi un fittizio database che contenga solo le maschere
modificate e i report nuovi.
attraverso un pulsantone in una maschera chiamata LIVEUPDATE   ;)))  e del
codice volevo fare in modo che un mio amico che avesse il programma...
ricevendo questo database di aggiornamento... premesse il pulsantone magico
e automaticamente attraverso dei comandi DoCmd.CopyObject... il suo database
viene aggiornato....
Provato!!...ma mi dice che non è possibile eseguire il comando copyobject
dopo che mi ha chiesto se volevo sostituire l'oggetto (il nome di una
maschera che voglio aggiornare).
sapete qualcosa di + su questo fatto?
ciao e grazie...e forza FERRARI  ;))

 ciao e grazie...e forza FERRARI  ;))
Su questo mi trovi daccordo.

 ha scritto nel messaggio
news:af7b1t$5gf$1...@fe1.cs.interbusiness.it...

Ma 8 mb non sono troppi?
Cosa fa questo mdb?
Non è che c' bisogno di una bella compattata e dell'esclusione di foto come
immagini delle maschere?
Non sarà una bolla di sapone
facci sapere
ciao MAssimiliano


Purtroppo sono 7,9Mb già compattati e senza immagini (immagini collegate)...
sai 75 maschere 35 report 10 query e 5 moduli da 3000 caratteri circa
l'uno....sai ingombrano
poi perche ho le tabelle divise
ma comunque fa lo stesso..mi sapete aiutare?

 ha scritto nel messaggio
news:af7b1t$5gf$1...@fe1.cs.interbusiness.it...

innanzitutto devi essere certo del percorso in cui si triva il database,
altrimenti si ingenera un errore, ad esempio se il DB (che chiamiamo per
convenzione MioDB.mdb) si trova nella cartella documenti il percorso da
seguire normalmente è "C:\documenti\MioDB.mdb", ma se l'OS utilizzato è
winNT o 2000 il percorso sarà "C:\Documents and
Settings\Administrator\Documenti\MioDB.mdb" e il tizio che deve fare il
l'update deve essere amministratore.
Appurato ciò, dovresti eseguire questo codice nel «pulsantone»:
    DoCmd.SetWarnings False 'inibisce gli avvisi (ricordarsi sempre di
ripristinarlo)
    DoCmd.CopyObject "C:/documenti/MioDB.mdb", , acTable, "Maschera_1"
'rispetta gli slash altrimenti non funzia
    DoCmd.CopyObject "C:/documenti/MioDB.mdb", , acTable, "Maschera_2"
    DoCmd.SetWarnings False 'ripristina gli avvisi
credo che così non dovresti svere problemi, perlomeno a me funzia
ciao
Maurizio


e aggiungo:
mi sa che così facendo il tuo db crescerà a dismisura senza che ce ne sia
effettivamente bisogno
Credo che tu debba fissare delle maschere e sostituirle quando fai delle
modifiche.
cmq complimenti x quello che credo di aver capito, che lavoraccio
ciao MAssimiliano

 credo che cosě non dovresti svere problemi, perlomeno a me funzia
A me chiede di sostituire l'oggetto ma poi mi dice che č impossibile....


hai verificato se il DB di destinazione è aperto? Perlomeno quando vado a
fare il BK delle tabelle entrambi i DB sono aperti, forse è questo
l'inghippo, nel caso al pulsantone aggiungi il codice per aprire l'altro DB:
    Dim stAppName As String
    stAppName = "MSACCESS.EXE C:\documenti\MioDB.mdb" 'qui gli slash
cambiano xche sono quelli proprietari dell'OS
    Call Shell(stAppName, 6)
________________________
i valori delle costanti le trovi qui
Costante Valore Descrizione
vbHide, 0, La finestra è nascosta e l'attivazione viene passata alla
finestra nascosta.
vbNormalFocus, 1, La finestra è attivata e vengono ripristinate la
dimensione e la posizione originali.
vbMinimizedFocus, 2, La finestra è ridotta a icona e attivata.
vbMaximizedFocus, 3, La finestra è ingrandita e attivata.
vbNormalNoFocus, 4, Vengono ripristinate le dimensioni e posizione
precedenti della finestra. La finestra attiva resta attiva.
vbMinimizedNoFocus, 6, La finestra è ridotta a icona. La finestra attiva
resta attiva.
________________________
in questo modo puoi lasciare aperto il db aggiornato e chiudere il DB di
upgrade, se invece vuoi che alla fine dell'aggiornamento venga chiuso il DB
di destinazione devi usare il metodo open/close.
Cià
Maurizo