Newsgroup: it.comp.appl.access
Titolo: Aggiornare DB da un'altro DB !!

salve amici di NG
volevo chiedere se fosse possibile aggiornare e come i dati di una o +
tabelle di un altro DB...
mi spiego meglio, io uso un DB ed aggiorno i dati giornalmente in
maschera....
avendo creato parallelamente un altro DB quasi uguale vorrei aggiornare con
i nuovi dati inseriti
alcune tabelle di un'altro DB...è possibile accodare i dati ??? Grazie...

alcune tabelle di un'altro DB...è possibile accodare i dati ??? Grazie...
accodare?  non ho capito bene cosa vuoi fare, ma è possibile
*allegare* tabelle, cioè creare un collegamento con tabelle di un
altro db che vengono viste (quasi) come fossero tabelle del db stesso.
vedi l'help.
--
non studio non lavoro non guardo la tv
non vado al cinema non faccio sport
----------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access

alcune tabelle di un'altro DB...è possibile accodare i dati ??? Grazie...
Hai due possibilità:
1) allegare le tabelle del db in cui vuoi accodare i dati e trattarle
come se fossero locali al db che effettua l'accodamento
2) aprire il db dove effettuare l'accodamento con il seguente codice:
dim wsp as workspace, dbs as database, rs as recordset
set wsp = workspace(0)
' Apre un database esterno a quello corrente
set dbs = wsp.opendatabase("Nomedeldatabase")
' Apre una tabella all'interno del database esterno 
set rs = dbs.openrecordset("Nometabella")
' Scrivere qui il codice per effettuare l'accodamento 
Vincenzo Turturro
---------------------------------------------------------
Se no diventiamo tutti **** dai portatili o peggio ancora 
provetti poeti fiorentini come vturturro.
(Così disse 
ivan....@tiscalinet.it
 Ven 25 Aug 2000 09:34:52 +0200)

 wrote in message
LHoC5.1010$NY2....@news.infostrada.it...


 ha scritto nel messaggio
news:XiDC5.6413$NY2.1...@news.infostrada.it...

Grazie x le risposte..a Lbo e VT stò vagliando le varie soluzioni....però
volevo chiedere a Bobbit
come si fà a tenere aggiornato un archivio condiviso tra due DB diversi
!!!..Grazie...

 ' Scrivere qui il codice per effettuare l'accodamento
scusa Vincenzo..è quale è il codice x effettuare l'accodamento ???
purtroppo non sono esperto in VBA...


purtroppo non sono esperto in VBA...
Ammesso che abbia capito esattamente quello che vuoi fare, credo che
la soluzione più immediata nel tuo caso sia la 1).
Supponiamo che tu abbia due database db1 e db2.
Se in db1 hai query che aggiornano i dati contenuti in tabelle
all'interno del medesimo db1 e che vorresti utilizzare anche per
aggiornare tabelle presenti in db2, in db1 puoi allegare le tabelle
contenute in db2.
Dal folder Tabelle in db1 fai click destro sull'area bianca e
seleziona "Collega tabelle", quindi scegli db2 ed infine seleziona le
tabelle di db2 che ti interessa utilizzare all'interno di db1; queste
verranno visualizzate nel folder "Tabelle" di db1 con una freccia
sulla sinistra ad indicare che si tratta di tabelle esterne al db
corrente.
A questo punto crea i query che ti servono (o modifica quelli già
esistenti) utilizzando al loro interno le tabelle appena allegate.
Spero di essere stato abbastanza chiaro.
In caso contrario, sai come fare !


 In caso contrario, sai come fare !
-----------
perfetto Vincenzo...grazie era quello che volevo....
in pratica aggiornando il DB1 mi aggiorna anche le tabelle di DB2 giusto...
azionando però la query...giusto ???
a questo punto non ho query e la devo creare... ma ne devo creare ognuna per
ogni tabella
o ne posso fare una per aggiornare tutte le tabelle... ???
e poi dal menù escono 5 tipi di qry (struttura,semplice,campi incrociati
etc) ... quale devo scegliere ??? Tnx

etc) ... quale devo scegliere ??? Tnx
Dipende da ciň che vuoi ottenere:
per te aggiornare una tabella cosa vuol dire ?
riempirne una vuota ?
aggiungere nuovi record ad una non vuota ?
aggiornare alcuni campi in una non vuota ?
eliminare record ?
In definitiva:
fornisci quanti piů elementi possibile, altrimenti si lavora di
fantasia.
Vincenzo Turturro
---------------------------------------------------------
Se no diventiamo tutti **** dai portatili o peggio ancora 
provetti poeti fiorentini come vturturro.
(Cosě disse 
ivan....@tiscalinet.it
 Ven 25 Aug 2000 09:34:52 +0200)


Okappa Vincenzo... qui divento matto...vediamo se riesco ad essere +
esauriente....
in sostanza... inserisco i dati in DB1 in maschera e chiaramente mi si
aggiornano anche x precisazione.... 3 tabelle...
1 Anagrafe, contenente i soliti dati Cognome, Nome, Nascita, indirizzo
etc...
1 Esenzioni, contenente dati di esenzione x ogni paziente inserito in
Anagrafe
il DB1 contiene 5.000 record inseriti.!!!!
Ho creato un DB2  simile al DB1 solo con + funzioni di query di ricerca etc
...e le tabelle sono già aggiornate... solo che periodicamente lo devo
fare in maniera manuale....tipo taglia-incolla...ma ho paura che qualche
dato me lo perdo x la strada....
Quindi io vorrei cercare di fare una query che aprendola mi vada ad
aggiornare/aggiungere dei record di DB1  alle tabelle di DB2...
Esempio:  se oggi al DB1 si inseriscono altri nuovi 300 record x cui diventa
5.300 dovrei inserire anche quei 300 record in DB2 che era di 5.000... spero
di non essere stato troppo macchinoso nell'esprimermi !!!
Cmq grazie x l'aiuto...

(.....)
Come si dice a Firenze: "Dai, picchia e mena ....alla fine ci siamo !"
Per fare ciò che chiedi, prima di tutto devi allegare le tabelle di
db2 a db1, come ti ho già spiegato in uno dei msg precedenti.
Inoltre, in ognuna delle tabelle che entrano in gioco
nell'aggiornamento (quindi sia in quella origine sia in quella
destinazione) deve esistere un campo che contiene un valore univoco
per ciascun record; ti suggerirei, se già non l'hai fatto, di
aggiungere un campo di tipo contatore.
Adesso, supponiamo che tu debba aggiungere alla tabella ana2 di db2 i
record della tabella ana1 di db1 che non sono contenuti in ana2.
Supponiamo poi che il campo contatore si chiami id1 in ana1 e id2 in
ana2.
Crea una nuova query, non selezionare nessuna tabella, click sul
pulsante più a sinistra della toolbar, scegli SQL, copia il codice
seguente:
INSERT INTO ana2
SELECT ana1.*
FROM ana1
WHERE (([ana1].[id1] Not In (select [ana2].id2 from ana2)));
Salva la query ed eseguila: in ana2 verranno aggiunti tutti i record
di ana1 che non si trovano già in ana2.
Se poi ti interessa (ma credo che faresti bene a darci un'occhiata,
giusto per capire "come si fa") prima di salvare la query fai di nuovo
click sul pulsante di prima e scegli "Struttura": vedrai come viene
costruita la query e di quale tipo è. 
Crea una query simile per ognuna delle tabelle che intendi aggiornare.
In realtà non ci sarebbe bisogno di allegare le tabelle, ma semmai
affronteremo la cosa più in là, se dovesse servire.
Ora che sembra che siamo arrivati alla soluzione di ciò che chiedevi,
permettimi di porti alcune domande "esistenziali":
e se in ana1 cancelli un record ? su ana2 resta !
e se in ana1 modifichi un campo di un record ? su ana2 il record
corrispondente resta invariato !
Quindi: sei sicuro di aver impostato i tuoi database in maniera
corretta rispetto alle tue esigenze ?
Oppure: sei sicuro di avere postato la domanda giusta ?
Vincenzo Turturro
---------------------------------------------------------
Se no diventiamo tutti **** dai portatili o peggio ancora 
provetti poeti fiorentini come vturturro.
(Così disse 
ivan....@tiscalinet.it
 Ven 25 Aug 2000 09:34:52 +0200)


Vincè sei grande... funziona alla perfezione...ti invio il codice SQL ....
INSERT INTO Anagrafe1
SELECT Anagrafe.*
FROM Anagrafe
WHERE (([Anagrafe].[ID_assistito] Not In (Select [Anagrafe1].ID_assistito
from Anagrafe1)));
---------------------
Cmq.. dimmi è normale che ci metta un sacco di tempo dico 4/5 minuti ad
aggiornare un migliaio di record .. in tabella Esenzioni... mentre in
tabella Anagrafe lo fà in pochi attimi ???  il pc è un 550 Mhz ...
e poi non mi trovo con i record...mi spiego...
In Tab Esenzione di origine vi sono 5.032 ID e 6482 record ??
In Tab Esenzione di destinazione vi sono 5.032 ID e 6.473 record ??
la differenza sono 9 ...come mai ???
che significa ciò ???
 riguardo le esigenze del mio Db non sono proprio sicuro... dato che mi
diverto a smanettarci...però quello che dici è vero...se si
cancella/modifica un record.. che si fà in questi casi...una qry di
aggiorrnamento di tutto il DB o altro??
Buona Domenica ...a te e famiglia !!!

aggiorrnamento di tutto il DB o altro??
Dipende dalle esigenze che hai ma, visto che le uniche differenze tra
i due db sono solo inerenti query e report,  mi (e ti) chiedo se non
sarebbe più semplice avere un unico db contenente tutti i dati del
primo e tutte le query/report del primo e del secondo.
Pensaci su.
Vincenzo Turturro
---------------------------------------------------------
Se no diventiamo tutti **** dai portatili o peggio ancora 
provetti poeti fiorentini come vturturro.
(Così disse 
ivan....@tiscalinet.it
 Ven 25 Aug 2000 09:34:52 +0200)

 aggiorrnamento di tutto il DB o altro??
Scusate se mi inserisci nel discorso: non sarebbe sufficiente che SuperPippo
allegasse (collegasse) le tabelle di DB2 in DB1 (se ricordo bene) e che
lavorasse su quelle? Hai necessità di tenere i dati separati?
Ciao
--
Silvio


 Vincenzo Turturro
---------------
Cmq niente da fare Vincenzo...anche compattando il DB il tempo l'ho
cronometrato
è di 4/5 minuti.... anche se non deve aggiornare nessun record... in effetti
mi esce dopo 5 minuti la finestra dei record che verranno aggiunti = 0 !!!
mi chiedevo quale potesse essere il motivo...dato che la qry di Anagrafe è
velocissima...
Cmq cercherò di seguire il tuo consiglio cercando di  unire in un'unico Db
il Db1 ed il Db2...
ci devo lavorare per un pò...personalmente ci metto tempo...non sono mica
bravo come Voi del NG !!!! Ciao VT....


Ciao Silvio sono SP... in effetti avevo la necessità di tenere 2 Db
separati....ma tutto considerato devo cercare di unire in DB1, tabelle,
query e report che ho creato in DB2..in modo da lavorare semplicemente con
un solo DB...se ci riesco...
Il fatto è che il DB1 non l'ho fatto io... è un pò scarno di funzioni ed
utilità e aprendolo mi compaiono solo le tabelle... credo sia protetto...
IMHO... non vedo qry, maschere e report...
però andando in maschera svolge funzioni di stampa e ricerca...anche se
povere...
è stato fornito con floppy di installazione e risulta anche un
eseguibile..!!!
Quindi il mio timore x importare le mie qry e report è di non far +
funzionare il Db originale...
ecco la necessità di aver fatto un secondo Db parallelo con le tabelle
originali....però + ricco di funzioni...Ciao da Superpippo

(.....)
Tieni conto che, per quanto ho capito della struttura dei due db, la
cosa dovrebbe essere molto semplice.
Se db1 contiene i dati originali e db2 contiene la copia delle tabelle
di db1 oltre alle funzioni che hai realizzato tu, fai così:
- in db2 cancella tutte le tabelle che hai copiato da db1
- in db2 allega tutte le tabelle di db1 (v. messaggi precedenti)
In questo modo hai realizzato la tipica struttura BE/FE di cui si è
parlato più volte su questo ng, ovvero la separazione tra i dati e le
funzioni che li utilizzano.
Tutto funzionerà esattamente come prima, senza bisogno di alchimie
sulla sincronizzazione dei dati, in quanto questi si troveranno solo
in db1.
Vincenzo Turturro
---------------------------------------------------------
Se no diventiamo tutti **** dai portatili o peggio ancora 
provetti poeti fiorentini come vturturro.
(Così disse 
ivan....@tiscalinet.it
 Ven 25 Aug 2000 09:34:52 +0200)