Newsgroup: it.comp.appl.access
Titolo: TrasferDatabase

Ciao a tutti, mi sapete dire dove sbaglio?
Ho creato una maschera con un pulsante aggiorna per esportare 3 tabelle e
una query (per prova per il momento)
dall'mdb corrente al file c:\acc\cod1.mdb
ho scritto questo codice,
___________
Private Sub aggiorna_Click()
Dim dbsEdit As Database
Dim dbName As String
Set dbsEdit = OpenDatabase("c:\acc\Cod1.mdb")
dbName = dbsEdit.Name
    DoCmd.TransferDatabase acExport, "Microsoft Access", dbName, acForm,
"Calendario", "Calendario"
    DoCmd.TransferDatabase acExport, "Microsoft Access", dbName, acForm,
"FileCopy", "FileCopy"
    DoCmd.TransferDatabase acExport, "Microsoft Access", dbName, acForm,
"Telefoni", "Telefoni"
    DoCmd.TransferDatabase acExport, "Microsoft Access", dbName, acQuery,
"prova", "prova"
dbsEdit.Close
End Sub
_________
ma durante l'esecuzione mi da questo errore
########
Errore di run-time '3420'
Oggetto non valido o non impostato
########
In fase di debug ho riscontrato che la prima tabella la trasferisce e
l'errore lo da sulla seconda e se annullo la seconda riga, mi da errore
sulla terza.
Se annulla pure la terza, la query me la copia.
Perchč?
ciao e grazie Riccardo

Se invece di esportare, importo, va tutto bene.
Pero' a me serve esportare le modifiche.
grazie
Riccardo

 ha scritto nel messaggio
news:905b9k$9kf$1...@news.panservice.it...

Ciao Riccardo sono Arianna
prima di tutto vorrei dirti una cosa: se tu conosci il nome e il percorso
del database (C:\acc\cod1mdb) non credo ti sia necessario dichiarare una
variabile database, per poi estrarne il nome, non ti conviene utilizzare
direttamente il nome del database, che lo conosci??
Riguardo all'esportazione:
se non è un errore di battitura, tu devi importare TABELLE e non FORM
(maschere):
DoCmd.TransferDatabase acExport, "Microsoft Access", dbName,
acForm,"Tabella","Tabella"
con questo comando importi maschere perchè come parametro del tipo di
oggetto da esportare è acForm invece di acTable (sempre che sia un errore di
battitura!), la prima volta ti funziona perchè magari, casualmente hai una
maschera che si chiama "Calendario", in questo caso ti esporta la maschera
ma non la tabella, per questo non riconosce l'oggetto le volte successive
(gli fai importare un oggetto che non esiste)
Soluzione:
DoCmd.TransferDatabase acExport, "Microsoft Access", dbName, acTable,
"Calendario", "Calendario"
DoCmd.TransferDatabase acExport, "Microsoft Access", dbName, acTable,
"FileCopy", "FileCopy"
DoCmd.TransferDatabase acExport, "Microsoft Access", dbName, acTable,
"Telefoni", "Telefoni"
DoCmd.TransferDatabase acExport, "Microsoft Access", dbName, acQuery,
"prova", "prova"
...infatti vedi la quarta riga tu gli passi una query??
Spero di esserti stata utile e buon lavoro!
Arianna


_____
Purtroppo non è un errore di battitura!
Dovrei esportare delle maschere in modo da sostituire quelle più recenti nei
vari BE (mi sembra che si chiamino BE le applicazioni con form, query,
report...e tabelle collegate), e quelle maschere esistevano tutte.
Il percorso esatto lo conosco in quanto faccio installare il prg in una
directory di default.
Inizialmente non mi aprivo l'oggetto Database, ma dandomi l'errore, ho
provato in quest'altro modo, ma nisba!
Continua a non funzionare...non riesco a capire perche' invece se uso la
costante di importazione funziona perfettamente e con l'esportazione no.
nella quarta riga passo la query xche' facevo una prova anche con quella!Mi
puo' servire passare:
Query
Forms
Reports
Macro (am è piu' difficile perche' potrei usare VBA)
Moduli
ciao e grazie
Riccardo

 Riccardo
Ciao sono ancora io, una cosa è certa se devi esportare in un mde...ci sono
dei problemi! Ma ho visto che fai riferimento ad un mdb
anch'io sto trattando l'aggiornamento dei vari applicativi installati e ho
notato che con l'mde è possibile (ma non darlo per certo: è una
constatazione personale!): importare/collegare tabelle, importare query,
importare macro SOLAMENTE! quindi se tu ci devi esportare qualcosa...
esporti solamente quegli oggetti
quindi l'unica strada che potresti percorrere (e
la sto provando anch'io) è quella di riuscire ( se tu usi l'mdb) a
cancellare gli oggetti da aggiornare nel database di destinazione per poi
esportarli dal database che aggiorna... altrimenti non saprei.
Comunque buon lavoro e scusa se non ti sono stata di grande aiuto
Arianna

 Arianna
_____
Il problema è proprio l'mde!
Dato che poi non ci posso scrivere, penso di distribuire l'mdb con
protezione a livello utente, e mi serviva quel codice per aggiornare le
maschere.
Nell'help avevo letto che sovrascriveva su quelle vecchie, ma mi da errore.
Ho provato come dici tu prima a cancellarle e funziona perfettamente. devo
solo trovare il codice giusto per cancellare le maschere vecchie.
grazie
Riccardo


Io ho valutato un'altra strada:
se nell'mde non posso importare/esportare le maschere, i report e
quant'altro..ho creato una procedura che mi copia il file aggiornante (con
un nome diverso da quello fornito) nella directory di installazione della
versione precedente, ed al posto di spostarci le maschere in quello da
aggiornare, nella versione nuova collego/esporto le tabelle (che nell'mde č
possibile) che utilizza la versione precedente (se hai FE e BE); in questo
modo ti trovi un database che contiene tutti i tuoi oggetti aggiornati
(maschere, report etc..) ma hai i collegamenti alle tabelle che
utilizzerebbe la versione precedente, rinomini la versione precedente (o la
cancelli) e rinomini la versione nuova con il nome del database effettivo!
meglio di cosě?
credi che si possa fare? io ci stň lavorando su e man mano che sviluppo mi
sembra una buona idea!
Comunque buon lavoro
Arianna

 Arianna
_____-
Ci sei già riuscita?
Sembra una buona ideo...ci provero' e ti faccio sapere.
bye Riccardo


Devo dire che sono ad un buon punto, e devo dire che sono molto soddisfatta
della scelta! almeno nel mio caso è una cosa fattibile senza molti problemi!
mi baso su una proprietà del database che chiamo "Versione", aggiornata al
punto ed al momento giusto; il mio problema è di confrontare le versioni dei
due database, tanto se conosci quelle che hanno i vari utenti e sai che le
modifiche si basano su tutt'altro che tabelle (nel mio caso) non credo che
cambi molto sostituire il database fisico! non per niente esiste il FE e BE,
se hai aggiunto (o tolto) qualche campo in qualche tabella (rispetto alla
versione che hai distribuito), il problema si risolve con meno di dieci
righe di codice, quindi...
spero di esserti stata utile...
A Presto
Arianna

 possibile) che utilizza la versione precedente (se hai FE e BE);
____
ma se il file senza le tabelle č di poco piu' piccolo di quello con le
tabelle collegate, non cambia mica molto!
In questo modo avrei un file zip di 1 Mb invece di 1,5 Mbyte.
ciao Riccardo

 ha scritto nel messaggio
news:908cdj$84l$1...@news.panservice.it...

Se i tuoi clienti hanno le tabelle collegate fai cosě:
1 - ti crei il database che contiene le tabelle che i tuoi clienti hanno, e
lo metti nella cartella dove č stato salvato dai tuoi clienti (se non le hai
cambiate)
 2 - ti crei il tuo mde(mdb) con solo le tue maschere, i tuoi report etc...
3 - nel database che devi distribuire (versione aggiornata) collega le
tabelle dal database che le contiene (quello che hanno anche i tuoi
clienti); cosě tu hai l'mde che contiene le maschere e i report etc...
aggiornati, ha i collegamenti alle tabelle degli archivi; il collegamento č
una immagine della tabella;
Se il tuo mde ha tabelle collegate da C:\Acc\Archivi.mdb, che lo copi in c:,
o in C:\windows\... lui ha sempre le tabelle collegate lě;
4 - zippi il tuo mde e fai in modo che, quando viene estratto sovrascriva
quello vecchio;
cosě ( se sei sicuro dell'indirizzo del database che contiene la tabelle)
il risultato č questo:
CLIENTE:
 ** ha il database degli archivi in C:\acc\Archivi.mdb
 ** ha il database con (esempio) 3 maschere e i link alle tabelle di
C:\acc\archivi.mdb
TU:
 ** hai modificato il database e ci hai aggiunto 2 maschere + 1 report
(esempio banale)
 ** hai il database degli archivi creato in C:\acc\archivi.mdb
 ** prendi le tabelle del file C:\acc\archivi e le colleghi nel tuo database
(i collegamenti non vengono mai rimossi se non tramite codice o manualmente,
ed il database si accorge se mancano solo quando le richiami)
 ** zippi il file in modo che sovrascrive il database dei tuoi clienti
Risultato:
CLIENTE:
 ** ha il database aggiornato con 5 maschere 1 report e le tabelle sono
collegate come prima!
(se prima il cliente aveva 3 tabelle collegate in C:\acc\archivi.mdb, il
database che hai sovrascritto aveva tre tabelle collegate in
C:\acc\archivi.mdb il risultato non cambia!)
Scusa se sono molto dispersiva ma questa volta non ho capito cosa intendevi
con la tua risposta...
MA DIMMI SE TI STO AIUTANDO, sta quasi diventando una questione personale
tra me e te!?!
Comunque buon lavoro
io nel mio intento ci sono riuscita altriment conosci la mia e-mail!
Ciao e buon fine settimana se non ci sentiamo piů in questi giorni!
Arianna