Newsgroup: it.comp.appl.access
Titolo: Aggiornamento tabelle tra due DB non sempre funzionante

Ciao a tutti.Durante il trasferimento dei dati da un DB ad un altro DB
attraverso delle query di comando (accodamento) ho notato che sempre e
solo una tab.non si aggiorna.Per aggiornare la tabella in esame devo
lanciare ancora le stesse query.Facendo in questo modo mi si aggiorna
anche la tab. in esame.
Di seguito vi riporto la struttura SQL della query che dal DB origine
deve trasferire (o meglio accodare) i dati nel DB di destinazione :
INSERT INTO Tb_fatt IN 'C:\DB.mdb'
SELECT *
FROM Tb_fatt;
Come ulteriore indizio vi posso dire che entrambe le tabelle hanno una
chiave primaria (ovviamente) identica e che sono relazionate nei
rispettivi DB con altre tabelle (uno a molti).Questa impostazione e'
identica anche per altre tabelle dove l'aggiornamento avviene sempre
senza problemi.
Per finire, l'aggiornamento delle query viene lanciato da un pulsante
di comando dal form principale del DB di origine:
 DoCmd.OpenQuery "AccodafattDB", acViewNormal, acEdit
 DoCmd.OpenQuery "AccodaDDTDB", acViewNormal, acEdit
 DoCmd.OpenQuery "AccodaprevDB", acViewNormal, acEdit
 Per semplicità ne ho rip. solo tre,in realtà le query saranno circa
20 .
Grazie in anticipo
Dino


Ciao Dino!
Non ho capito: quando lanci la INSERT la prima volta nella tabella
Tb_fatt non viene accodato alcun record o ne vengono accodati solo
alcuni?
Un'altra domanda: non è che la Tb_fatt dipende da un'altra tabella
(tiro ad indovinare: una Tb_clienti, ad esempio) che aggiorni *dopo*
la Tb_fatt e, quindi, eseguendo la query di INSERT in Tb_fatt una
seconda volta allora sì che ti tira su tutti i record?
Just my 2 cents ;)
HTH
Popi

 rispettivi DB con altre tabelle (uno a molti)
sicuramente il problema sta qui...rivedi la sequenza di richiamo delle 
varie query.
ciao
BFS

 20 .
Prova cosï¿œ:
================================
Private Sub Command0_Click()
Dim RemoteDB As Database, LocalDB As Database, RemoteRS As Recordset, 
SQL As String
Set LocalDB = CurrentDb
Set RemoteDB = OpenDatabase("C:\DB.mdb")
Set RemoteRS = RemoteDB.OpenRecordset("tb_Fatt", dbOpenDynaset)
RemoteRS.Requery
SQL = "INSERT INTO Tb_fatt IN 'C:\DB.mdb' SELECT * FROM Tb_fatt;"
LocalDB.Execute SQL
'RemoteRS.Requery
End Sub
===============================
Trattandosi poi di 20 query sarï¿œ opportuno crearne un array ed 
eseguirle entro un loop For... Next.
Bruno

 - Mostra testo citato -
Ciao ragazzi e grazie a tutti per le vostre preziose risposte.Le ho
lette in questo momento.Quello che dice Popi e' sicuramente
vero,ovviamente c'e' una tabella clienti.La stessa tabella che ad
esempio c'e' per i DDT ma con la tab DDT non mi fa questo
"scherzo".Vorrei seguire anche il consiglio di Bruno,avrei pero'
gentilmente bisogno di un "input" di come si imposta un array.Ad ogni
modo adesso verifico la sequenza delle query e poi vi faccio sapere.
Ci sentiamo tra un attimo e grazie ancora
Dino

 wrote:
Ci sentiamo tra un attimo e grazie ancora
Dino
Va bene, restiamo in trepida attesa
Se non ci trovi qui, siamo tutti alla macchina del caff�
Antonio 

 Se non ci trovi qui, siamo tutti alla macchina del caffè
Grazie dell'invito, Antonio (avevo proprio bisogno di un bel caffè ...
offerto, poi ... :D )
Popi


Allora ragazzi sembra funzionare "tutto".Come ripeto mi piacerebbe
seguire il consiglio di Bruno ma dovete gentilmente darmi una dritta
sugli Array....
NB:Sottolineo con piacere che Antonio oltre ad essere "il
programmatore" o meglio "lo sviluppatore" e anche molto
"spiri......tosotoso" Vota Antonio...Vota Antonio
Dino

 sugli Array....
=======================================
Private Sub Command0_Click()
Dim RemoteDB As Database, LocalDB As Database, RemoteRS As Recordset, 
SQL As String
Dim dbArray(1 To 20, 1 To 3) As String, FileName As String, TableName 
As String
Dim i As Integer, n As Integer
' dbArray(x, 1) ==> db remoti completi di path
' dbArray(x, 2) ==> relative tabelle remote
' dbArray(x, 3) ==> corrispondenti tabelle locali
n = 3
dbArray(1, 1) = "C:\DB1.mdb": dbArray(1, 2) = "Tb1_Fatt": dbArray(1, 3) 
= "Tb1_Fatt"
dbArray(2, 1) = "C:\DB2.mdb": dbArray(2, 2) = "Tb2_Fatt": dbArray(2, 3) 
= "Tb2_Fatt"
dbArray(3, 1) = "C:\DB3.mdb": dbArray(3, 2) = "Tb3_Fatt": dbArray(3, 3) 
= "Tb3_Fatt"
Set LocalDB = CurrentDb
For i = 1 To n
    Set RemoteDB = OpenDatabase(dbArray(i, 1))
    Set RemoteRS = RemoteDB.OpenRecordset(dbArray(i, 2), dbOpenDynaset)
    RemoteRS.Requery
    SQL = "INSERT INTO " & dbArray(i, 2) & " "
    SQL = SQL & "IN '" & dbArray(i, 1) & "' SELECT * FROM " & 
dbArray(i, 3) & ";"
    LocalDB.Execute SQL
    'RemoteRS.Requery
Next
End Sub
=========================================
Eccolo qua... mentre gli altri si davano ai bagordi!
Bruno


Antonio? El se' propio toso, ciò ;)
Array: in un caso simile al tuo me la son giocata così.
Ho definito le query che mi servivano chiamandole "Accoda_01",
"Aggiorna:_01", ecc. sino a "Accoda_76", "Aggiorna:_76".
Dopodiché ho messo su un banalissimo ciclo (vado a memoria, non sto
copincollando!):
For ScorriQuery=1 To 76
    currentdb.execute replace$(replace$(currentdb.querydefs("Accoda_"
& format$(scorriquery,"00")).sql, vbcr, " "), vblf, "")
    currentdb.execute replace$(replace$
(currentdb.querydefs("Aggiorna_" & format$(scorriquery,"00")).sql,
vbcr, " "), vblf, "")
Next
HTH
Popi

 Antonio
Oltre ad essere "il programmatore" o meglio "lo sviluppatore" sei
anche  "Spiri.......toso".....
Come sempre grande .......vota Antonio ....Vota Antonio.....ecc.
in realta' ho provato ma non funge nulla.Vorrei provare l'idea di
Bruno.Domanda: il codice scritto va inserito per ogni query???Vero (Tu
dirai :caspita che domanda tecnica ????Bravo
Dino...sviluppa ...sviluppa).
Vorrei una dritta sull'array .....
Dino

 Antonio
Allora ragazzi sembra funzionare "tutto".Come ripeto mi piacerebbe
seguire il consiglio di Bruno ma dovete gentilmente darmi una dritta
sugli Array....
NB:Sottolineo con piacere che Antonio oltre ad essere "il
programmatore" o meglio "lo sviluppatore" e anche molto
"spiri......tosotoso" Vota Antonio...Vota Antonio
Dino

 - Mostra testo citato -
Gli altri oggi sono dei "bagordi"!!!!!
Grazie per la dritta.Vediamo se ho capito.Tu scrivi Tb1_fatt Tb_2_fatt
ecc ovviamente intendendo per ogni singolas tabella vero???Altra
doamnda:Il codice che mi avevi  inserito nel post precedente presumo
lo devo inserire per ogni query,vero???
Ultima cosa che mi ero dimenticato di dirvi,che entrambi i DB hanno
una password (identica) che io dovrei inserire nell'INSERT delle query
come posso fare???
Dino

 - Mostra testo citato -
A sì !!!!Antonio a se proprio un "toso" on un "puteo???" allora posso
dirgli simpaticamente Antonio "Ma va in MONA va"
Mi piacerebbe sapere di che zopnba e' Toso
Grazie per la risp.Voglio provare anche il tuo consiglio per L'array.E
come ho detto a Bruno entrambi i DB hanno una password,come posso ins
nell'INSERT delle query??
Ancora l'utilità dell'array????
Dino
NB:Mi viene in mente un modo di dire veneto sulle ragazze "non belle"
" Ehi tosi il BUSO E' BUSO E IL ............NON GA OCCI !!!!!! "
Dino

 wrote:
A s� !!!!Antonio a se proprio un "toso" on un "puteo???" allora posso
dirgli simpaticamente Antonio "Ma va in MONA va"
la mona non si rifiuta mai
Antonio 

 Antonio
Mi sembra giusto!!!!!!! Ci troviamo l'anno prossimo per la partita di
scacchi "vivente" a Marostica... puteo....
Dino

 come posso fare???
Out of time!
Bruno

 Antonio
Mi sembra giusto!!!!!!! Ci troviamo l'anno prossimo per la partita di
scacchi "vivente" a Marostica... puteo....
Dino
interessante...
Antonio 



 wrote:

Rispondo alla romana "A Bruno che vor dìììììì "
Comunque grazie per i post. prec.
Diciamo che doamni mattina possiamo fare un "time out" e se hai tempo
togliermi il dubbio sopra riportato.
Grazie ancora
Dino
Good night