Newsgroup: it.comp.appl.access
Titolo: Query di aggiornamento (ancora)

Salve a tutti i partecipanti di questo meraviglioso NG.
E' da un bel pò che non creo più delle query di aggiornamento e non riesco a
capire dove sbaglio.
Ipotizziamo due tabelle:
- dipendenti (id, cognome, nome)
- colleghi (id, cognome, nome).
Tabella dipendenti con 5 records inseriti.
Voglio creare una query di aggiornamento che dovrà inserire tutti i records
della tabella dipendenti nella tabella colleghi anche se quest'ultima vuota.
Premetto che non ho creato nessuna relazione.
La query non mi funge.
Mi sfugge qualcosa e non riesco a capire cosa.
Un aiutino mi sarebbe molto utile.
Grazie anticipatamente.
Marco.

vuota.
ciao credo che tu abbia bisogno di qry di
accodamento non di aggiornamento. 
prova così e facci sapere
MAssimiliano
--------------------------------
Inviato via 
http://usenet.iol.it
 

 ha scritto nel messaggio
news:jJzE8.47879$CN3.1...@news2.tin.it...

Creati una query di accodamento e non una query di aggiornamento.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:AmJE8.66798$5k4.1...@twister2.libero.it...

Grazie per V/s gentili risposte ma, come dice qualcuno, la domanda nasce
spontanea:
quando eseguo una query di accodamento se, per sbaglio, ci clicco più di una
volta all'esecuzione della stessa, non è che, per caso, mi ritrovo con
record duplicati? come dovro' comportarmi in tal senso? e poi, se nella
tabella originale, ad esempio in qualche record iniziale, effettuo delle
modifiche, con la query di accodamento oltre che accodarmi eventuali nuovi
records, effettua anche un controllo di aggiornamento e/o modifiche
apportate alla predetta tabella origine?
Grazie per la cortese attenzione.
Marco.

 Marco.
Caro Marco,
una query di accodamento accoda i recor di una tabella in coda a quelli di
un'altra tabella: nienti di più e niente di meno.
Se esegui la query più di una volta i record verranno accodati più di una
volta con tutte le conseguenze del caso. Inoltre non vengono operati
controlli tra i record delle due tabelle.
Per le domande che stai facendo, ho paura che quello che ti serve lo
dovresti ottenere con le Repliche di Access (vedi Help).


dovresti ottenere con le Repliche di Access (vedi Help).
mi permetto
di dire: oppure..
dopo aver accodato effettua una query di aggiornamento
sui record che hai appena accodato magari spuntando un sì a questi e chiedi
alla qry di accodamento originaria che la  prossima volta accodi solo
quelli che non sono spuntati.
ciao MAssimiliano
p.s. Roberto, cosa ne
pensi?



Penso che, prima di aprire una discussione, bisognerebbe che MarkRed (alias
Polsci) ci dicesse per benino cosa gli serve.



Caro Roberto, hai ragione. L'alias è per sbaglio dall'ufficio (mi dimentico
di entrare con la mia identità).
Credevo di essere stato chiaro ma ad ogni buon fine ripeto la mia esigenza:
qual'è il miglior modo per ottenere un accodamento e, soprattutto, un
aggiornamento di record tra due tabelle?
Aggiornamento - ma se una tabella è vuota non ha nulla da aggiornare nè
tantomeno aggiunge records;
Accodamento - si rischia di accodare più volte gli stessi record e non
effettua nessun eventuale modifica dei precedenti records.
Premetto che, almeno per me, la risoluzione di questo problema può essere
utile per l'importazione di dati provenienti da altri programmi tipo Excel
e, quindi, avendo alcuni campi (o parte di essi) uguali a quelli di una
tabella già esistente del database corrente, incollarli senza doverli
reinserire.
Tutto qui. Mi appello alla V/s autorevole esperienza.
Grazie.
Marco.

 Marco.
Ritengo che il modo più logico di risolvere il tuo problema sia quello di
aprire due recordset sulle due tabelle, quella da aggiornare (che chiameremo
Tabella1) e quella che contiene gli aggiornamenti (che chiameremo Tabella2).
Le due tabelle risulteranno in relazione uno_a_uno in base alla chiave
primaria.
Quindi creare un ciclo che per ogni record di Tabella2 ricerca l'equivalente
record nella Tabella1: se non lo trova lo inserisce, mentre se lo trova
sostituisce i valori dei campi significativi di Tabella2 ai relativi campi
di Tabella1.
Così non rischierai mai record doppi in Tabella1, anche se ripeti più volte
l'elaborazione.


Come sempre sei gentilissimo e sono sempre più convinto che qualsiasi guida
di Access non serve a niente!
Mi ci vuole un'ottima guida, invece, di Visual Basic (Apogeo guida completa
£. 69.000 CHE FREGATURA!!!!).
Insomma, impariamo a conoscere la programmazione Visual Basic e poi
"divertiamoci".
Ne approfitto per suggerirmi qualche buon testo, al proposito.
A parte tutto torniamo al mio problema. Chiaramente quello che suggerisci va
fatto, ovviamente, in codice visual basic e non più con le query. Se non è
eccessivamente lungo, gradirei qualche "tua linea di codice" :-)). (GRAZIE).
Un suggerimento per un altro problema: come faccio ad aprire un documento
Word, Excel, ecc., tramite un pulsante di comando, e come faccio, se ad
esempio, devo creare un documento con un nome specifico "PROVA.DOC" e, nel
caso esistesse, me lo apra???
Lo so che è troppo e sono prosternato ed in ginocchio su due ceci!!!
Grazie ancora Roberto.
Marco.

 Marco.


Grazie, come sempre, Roberto,
mi fiondo subito a cercare la guida che mi hai AUTOREVOLMENTE suggerito
anche perchè andro' subito a studiare cosa sono i DAO e gli ADO.
Ciao.
Marco