Newsgroup: it.comp.appl.access
Titolo: aiuto ...INSERT INTO

...siamo gia' a due richieste per questa settimana, cmq mi trovo il seguente
problema e non capisco se sbaglio io (molto probabile) o se devo usare
qualche altra istruzione (e cmq e' sempre un mio sbaglio)
Mi trovo ad aggiornare dei record in diverse tabelle prendendo i dati da
tabelle (con stessa struttura) residenti su un disco esterno (zip).
Utilizzo il commando:
DoCmd.RunSQL "INSERT INTO " & Tabella(NumTab) & " IN " &
"'Z:\REMOVIBILE\archiviofiliale.mdb'" & " SELECT * FROM " & Tabella(NumTab)
dove tabella(NumTab) e' il nome delle tabelle da sincronizzare.
Tutto funziona bene se la tabella da sincronizzare e' vuota......ma se la
tabella da sincronizzare, al contrario,  contiene gia' dei record questi non
vengono aggiornati!!! :-(
So che insert into e' un commando di accodamento, ma speravo (e forse qui
sbaglio) che  i record "vecchi" con chiave primaria identica ai nuovi
venissero sovrascritti da quest'ultimi, ma cosě non e'!!!
Potrei anche cancellare la vecchia tabella e crearla ex novo con un comando
select......ma putroppo questo e' fattibile  solo per 2 dell 7 tabelle da
aggiornare!
Come posso provare??
Ciao e grazie
--
________________________________________
Davide Cielo              
d.c...@tin.it

 venissero sovrascritti da quest'ultimi, ma cosě non e'!!!
Infatti e' impossibile , devi usare una UPDATE per aggiornare quelli con
stesso ID ed una insert per quelli con ID diverso :)
Ciao, Lorenzo


 wrote in message
9e460v$q4v$1...@lacerta.tiscalinet.it...

ok adesso provo e poi ti dico.
Grazie ancora
Ciao



sono in panico....non so  come impostare la stringa sql  per far riferimento
ad un mdb esterno e sua relativa tabella??? e non ho nemmeno idea su come
modificare la stringa di cui sopra per inserire la clausola where ID.. non
presente su tabella origine???
ciao
Grazie

 Grazie
Cosi' apri un db esterno a quello su cio stai lavorando
    Dim db As Database
    Dim rst As Recordset
    Dim tdf As TableDef
    Dim strsql As String
    Dim wsp As Workspace
    Set wsp = DBEngine.Workspaces(0)
    Set db = wsp.OpenDatabase(NomeDatabase)
    Set rst = db.OpenRecordset(strsql)
e poi lavori sui recordset , mi sa' che si fa' prima che usare sql :))
Ciao Lorenzo

 Davide Cielo              
d.c...@tin.it
Una delle possibilità potrebbe essere quella di scaricare su una tabella di
appoggio il contenuto proveniente da zip.
Quindi creare una query di cancellazione basata sulla vecchia tabella e che
cancella tutti i record che hanno corrispondenza nella tabella di appoggio
(puoi farlo usando la funzione DLookup nei criteri della query di
cancellazione).
A questo punto, con una query di accodamento, puoi accodare i record della
tabella di appoggio alla vecchia tabella dalla quale hai già fatto le
cancellazioni.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 wrote in message
9e5gpj$4fi$1...@stargate1.inet.it...

Grazie 1000, mi posso permettere di chiedere anche un suggerimento su come
impostare delle righe di commando???
Ciao
Grazie
Davide



..ho trovato nella sezione ricerca del sito comune una serie di post tra VT
e superpippo su una situazione analoga alla mia, ma non ho visto il
finale....dove si ipotizzava il sincronismo della tabella anche quando si
incontrvano dei record modificati o cancellati, sapete per caso dove posso
trovare qualche indicazione a riguardo??
Ciao
Grazie


Creati le query e dal loro codice SQL ricavati le stringhe SQL che ti
servano.
