Newsgroup: it.comp.appl.access
Titolo: Estendere tabella esterna

Scusate il subject poco chiaro, la situazione č questa:
ho un gestionale (non in access) che tratta veicoli. Attraverso una query 
di accodamento prelevo solo alcuni campi (marca, modello, protocollo) dei 
veicoli usati e li sbatto in una tabella all'interno del mio db in access.
Tuttavia mi ho bisogno di campi aggiuntivi (prezzo vendita, prezzo spese), 
che ho provveduto a creare nella versione in access.
Il mio problema č di mantenere sincronizzate le due tabelle (quella nel 
gestionale che non ha tutti i campi che mi interessa e quella nel miio db 
con i due campi in piů), senza perdere i dati nei campi prezzo vendita, 
prezzo spese.
Ad ora sono propenso di risolvere tramite codice con i recordset, ma sono 
molto interessato ad un vostro parere e/o consiglio.
Grazie
P.S.
Il numero di record da gestire č abbastanza ridotto, siamo sotto al 
centinaio.
-- 
Fumok
[Toglimi le MUTANDE se vuoi rispondermi]

"Fumok" <gabriele....@MUTANDEadriacom.it> ha scritto nel messaggio
news:Xns93BA665...@194.247.160.50...

Invece di una query di accodamento hai provato con una query di
aggiornamento?
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 aggiornamento?
Già ma dovrei tener conto anche delle eliminazioni e delle cancellazioni.
A parole dovrei fare una cosa così:
all'apertura della tabella in access:
- apro la tabella esterna (gestionale chiuso) o meglio con una query 
estrapolo ciò che mi serve
- scorro ogni record e confrontando per protocollo
  - aggiungo se non c'è
  - modifico quelli che corrispondono già
  - elimino di conseguenza tutti gli altri record
In vba è fattibilissimo, ma la mia idea era di usare se possibile solo 
query di aggiornamento, accodamento ed eliminazione.


"Fumok" <gabriele....@MUTANDEadriacom.it> ha scritto nel messaggio
news:Xns93BA7A9...@194.247.160.50...

Una volta che hai importato in una tabella ciò che ti serve, metti in join,
in base al numero protocollo, la tabella da aggiornare con la tabella che
contiene i dati che hai estrapolato, ed in tre query di comando diverse
accoda i record estrapolati che non hanno corrispondenza, aggiorna quelli
che hanno corrispondenza e cancella i record della tabella da aggiornare che
non hanno corrispondenza nella tabella dei dati estrapolati.


 tabella dei dati estrapolati. 
Grazie delle dritte. E' un po' quello che ho fatto, ma non ho usato un 
join:
1 - una query per taggare i record
2 - una query di accodamento dei record nuovi
3 - aggiornamento di n record
4 - eliminazione dei record non taggati
soltanto il punto 3 l'ho svolto con un ciclo ed eseguendo n query di 
aggiornamento. Penso non sia la situazione ottimale, come potrei scrivere 
una query di aggiornamento unica?
Grazie e ciao


 Fumok
-- 


 ha scritto in 
news:%tuRa.182255$
lK4.5...@twister1.libero.it
: 
DoCmd.RunSQL ("UPDATE [Listino usati] INNER JOIN [Listino usati ARCO da 
MODIFICARE] ON [Listino usati].Protocollo = [Listino usati ARCO da 
MODIFICARE].Protocollo SET [Listino usati].Marca = [Listino usati ARCO da 
MODIFICARE].[Marca], [Listino usati].Modello = [Listino usati ARCO da 
MODIFICARE].[Modello];")
dove 
[Listino usati] è una tabella nel be (io lancio l'aggiornamento dal fe) che 
va aggiornata
[Listino usati ARCO da MODIFICARE] è una query che contiene i dati corretti
Mi ritorna l'errore che ci vuole una query aggiornabile, ma non capisco 
come risolvere.


Per altro era stata la mia prima soluzione, ma visto l'errore ero convinto 
di uno sbaglio di concetto molto grave, da qui le mie richieste.
Grazie comunque, e speriamo di superare anche questo ostacolo.
Fumok

 -- Fumok
Nel mio esempio le due tabelle sono messe in join in base alle loro chiavi
primarie: quindi si opera con un recordset aggiornabile in quanto le tabelle
risultano in relazione uno-a-uno.
Probabilmente nel tuo caso il campo Protocollo di una o entrambe le tabelle
non č chiave primaria; se cosě fosse le due tabelle sarebbero in relazione
uno-a-molti ed il recordset risultante dal join risulterebbe giustamente non
aggiornabile.


 risulterebbe giustamente non aggiornabile.
Grazie mille, googlando sono giunto alle stesse conclusioni, l'unica 
soluzione alternativa al mio caso sarebbe quella di una tabella temporanea.
Sono indeciso sul da farsi se mantenere il ciclo sul recordest con n query 
di aggiornamento o passare per la tabella temporanea, non mi resterà che 
fare delle prove per quanto riguarda le prestazioni.
Saluti
