Newsgroup: it.comp.appl.access
Titolo: Come lo aggiorno?

Ho letto alcune cose sulla divisione in FE e BE di un database, ma
credo che non saranno la soluzione per il mio problema.
Mi pare di capire che questa divisione è particolarmente utile quando
è il FE a cambiare più frequentemente del BE, ma purtroppo questo non
è il mio caso.
Ho a che fare con un database in cui c'è una tabella che contiene i
prezzi degli articoli in vendita e questi hanno prezzi variabili anche
mese per mese o peggio ogni settimana.
Se devo aggiornare questa tabella con frequenza settimanale come mi
conviene fare?
Grazie

 conviene fare?
Temo che tu abbia fatto un po' di confusione.
1. Quando si parla di "cambiare" il be si intende parlare di cambiamenti
della struttura, non certo dei dati (in pratica hai detto una piccola
fesseria)
2. Con il be diviso dall'fe ottieni una maggiore stabilita' quando il db e'
condiviso tra diversi utenti
3. unito o diviso, le modifiche strutturali richiedono comunque il blocco di
tutti gli utenti, con la differenza che se non e' diviso devi bloccarli
anche quando fai le modifiche alla parte fe (che sempre fe si chiama anche
quando non e' diviso)
Sib
--
http://www.sitocomune.com
http://digilander.iol.it/syb
 (a vostro rischio e pericolo)

fesseria)
Ah si!?!
Sono contento.
Mi pareva un po' una pecca in un programma come Access, e in generale
nei database, che ci fosse così tanto casino da fare per cambiare i
dati di una tabella. Del resto si pensa che la struttura del BE di un
DB ben pensato sia quasi fissata, a meno che non cambino le esigenze.
Cmq venendo a noi: ora dovrei dire che ho bisogno di fare un
aggiornamento frequente dei dati di una tabella e non del BE.
Il problema è distribuire questo aggiornamento, cioè io li aggiorno
manualmente sul mio computer ma poi dovrei fare in modo che su un
altro computer, dove gira il DB in questione, la tabella venga
aggiornata in base a un file o qualcosa del genere che fornisco io dal
mio computer.
Il mio problema in effetti è più di distribuzione. ho bisogno di
distribuire una tabella che soppianti la "vecchia versione" come
faccio?
Ora riparto pure su google a cercare per il mio problema di
distribuzione.
Grazie

 wrote in message
6c7ekv8edqk5hiadg...@4ax.com...

Visto che Sib è in ferie, provo a risponderti io.
Per risolvere il tuo problema prova ad usare il Metodo SendObject (vedi
help) per inviare per posta elettronica agli utilizzatori del tuo database
la tabella con i dati aggiornati; naturalmente ti conviene che tale conviene
che tale tabella contenga solo dati di tipo "anagrafico" (codice,
descrizione prezzo ecc.).
Chi riceverà il messaggio non dovrà fare altro che importare i dati che sono
ad esso allegati, sostituendo i vecchi.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

ad esso allegati, sostituendo i vecchi.
grazie mille della risposta.
ho provato a mettere in pratica il tuo consiglio e qualcosa è venuto
fuori, purtroppo anche dei problemi, e prima di tentare di risolverli
in qualche complicato modo che mi possa venire in mente, provo prima a
sentire se ce ne sono di semplici visto che a me vengono in mente solo
iter pieni di query e complicazioni varie.
premetto che non ho usato esattamente il metodo da te consigliato, ma
semplicemente ho esportato la tabella in questione generando quello
che sarebbe dovuto essere l'allegato dell'email che tu proponevi (sia
in solo testo che in formato access). Spero che la mia iniziativa non
alteri la sostenza ...
fatta l'esportazione poi si deve fare l'importazione e qui purtroppo
ho dei problemi.
L'importazione del solo testo può essere fatta su una tabella
esistente o scegliere di crearne una nuova, ma se faccio importare
accodando alla tabella esistente ci sono delle violazioni di chiave e
i record non vengono aggiornati mentre creare una nuova tabella
sarebbe del tutto inutile a causa delle relazioni tra tabelle che
esistono solo sulla tabella già presente nel DB e non in quella nuova.
tutti i miei tenativi per aggirare la violazione di chiave passanti
per l'eliminazione della tabella chiaramente sono fallitti pereché
perderi le relazioni.
Se importo da un file di access invece mi fa scegliere cosa voglio
importare del file orgine e poi però non posso scegliere la
destinazione, cioè la tabella nuova non piò sostituire la precedente
ma viene semplicemente aggiunta al DB ed è di nuovo del tutto esclusa
dalle relazioni etc come prima.
una soluzione per ora ce l'ho.
creo un nuovo DB vuoto
ci esporto la tabella aggiornata
distribuisco il nuovo DB che ora contiene la tabella.
l'utente apre il DB che gli ho dato
apre la tabella in esso contenuta
seleziona tutti i campi
copia con CTRL+C
poi apre il DB da aggiornare
apre la tabella da aggiornare
seleziona tutti i campi
e poi incolla con CTRL+V
e sembra che funzioni, ma vorrei fare una cosa più user friendly ... 
così ho provato a cambiare i passi finali di questa procedura:
invece di aprire la tabella per fare Copia ho provato a fargli
"esporta" e ho scelto come destinazione il DB da aggiornare, ma access
non ha concluso l'esportazione perché nel DB da aggiornare ci sono le
relazioni a impedire la sostituzione della vecchia tabella che
evidentemente deve per un attimo essere cancellata.
come posso fare una importazione che vada a sostiure la precedente
tabella senza prima eliminarla, cioè mantenendo le relazioni e tutto
il resto?
grazie a tutti.

la funzione replica del database potrebbe essere utile in qualche
modo? mi pare di no dalle prove che ho fatto visto che permette di
fare un duplicato del DB e di tenerlo aggiornato tramite
sincronizzazione mentre a me interessa solo di sincronizzare una
tabella, però ho letto in una risposta di Roberto che il DB replica
poteca essere usato per "Sincronizzare i dati ed il codice di un
database che lavora
contemporaneamente su più computer che non sono in rete tra di loro."
che detto così potrebbe essere proprio quello che fa per me, magari
col metodo di sincronizzazione indiretta, a sapere dove si scegli 'sto
metodo indiretto ... 
ho provato cmq a usare la sincronizzazione diretta e l'ho trovata
interessante, ma purtroppo non è utile per la distribuzione di una
sola tabella perché si finisce per replicare l'intero database che
rischia col tempo di diventare un mattone da mandare per email.
ho visto che c'è una possibilità di creazione di replica parziale, ma
non sono riuscito a sfruttarla nel senso che mi crea sempre delle
repliche totali del DB ignorando le mie spunte sulle tabelle da
sincronizzare e non.


[cut]
Se non hai bisogno dell'integrità referenziale puoi provare una
struttura di questo tipo
- front-end
- primo back-end con la sola tabella da aggiornare periodicamente
- secondo back-end con le altre tabelle.
Ciao
--
Alberto
No alle guerre

- secondo back-end con le altre tabelle.
Detto così mi piace, ma non so come si mette in pratica, o meglio mi
sfugge un attimo cosa intendi per due BE.
Inendi forse una procedura di sincronizzazione parziale?



La struttura FE/BE prevede un mdb con le sole tabelle (BE) e un altro
con il resto, maschere report eccetera (FE).
Dal FE, con i comandi file/carica dati esterni/collega tabelle, ti
puoi collegare alla tabelle del BE e quindi utilizzarle.
Io ti suggerisco invece di collegarti alle tabelle non di uno ma di
due BE, il secondo conterrà solo la tabella che deve essere
periodicamente aggiornata.
In occasione di ogni aggiornamento i vari PC riceveranno un mdb che
conterrà la sola tabella in questione, aggiornata. Sarà quindi
sufficente eliminare il vecchio mdb che funge da BE n° 2 e sostituirlo
con il nuovo file ricevuto.
Ciao.


Ciao.
molto bello. quindi è la funzione "collega tabella" che fa tutto ... 
ora sto valutando cosa sia meglio se la sincronizzazione parziale, che
avrebbe dei vantaggi per mantenere aggiornati i due DB al 100%, o il
tuo metodo più leggero per le email, ma mirato su una sola tabella.
ora farò delle prove grazie mille

ora farò delle prove grazie mille
io veramente avevo capito che tu dovevi periodicamente fornire alle
varie postazioni di lavoro la versione aggiornata di *una sola
tabella* ... comunque facci sapere come risolvi
ciao
