Newsgroup: it.comp.appl.access
Titolo: Troppe istruzoni su scaricamento?

Ciao a tutti, sono di nuovo qui a chiedere lumi a chi ne sa molto più
di me....
Il mio problema è questo: ho un db in access 2003 e devo trasferire i
dati di una ventina di tabelle, estrapolati da una tabella primaria, in
excel per potervi eseguire dei calcoli automatici giornalmente.
Le tabelle sono generate da query di creazione tabella la cui
esecuzione viene fatta tramite delle macro; le macro sono esegute
tramite DoCmd.RunMacro in evento su scaricamento della maschera.
Il problema e che non sempre, aprendo excel ed aggiornando i dati
esterni tutto funziona cme dovrebbe, alcune volte i dati non si
aggiornano ed ho verificato che anche le tabelle di origine non si
erano aggiornate, ho dovuto eseguire le query manualmente...
Ho il sospetto (quasi la certezza) che sia un pò macchinoso ciò che
ho realizzato e che i problemi sorgano proprio per questo o forse per
il fatto che sono troppe le macro che faccio girare tutte assieme sullo
stesso evento, non lo so e spero proprio che qualcuno possa darmi
qualche suggerimento per fare in modo che tutto funzioni al meglio...
Specifico che il db è in una piccola rete aziendale.
Scusate per la genericità di ciò che ho scritto, spero che il mio
problema sia cmq comprensibile.
Un grazie anticipato.

 stesso evento, non lo so e spero proprio che qualcuno possa darmi
[cut]
Non ho capito molto quale sia il tuo problema pero' direi che dietro un 
evento puoi mettere anche 183,74 elaborazioni differenti. Che sia codice 
VBA o macro poco importa.
Rispetto alla macchinosita', se devi fare cose e l'evento e' quello 
giusto potra' anche essere "macchinoso" ma le cose bisogna pur farle da 
qualche parte.
A occhio direi pero' che c'e' qualche query che non fa esattamente 
quello che pensi (sempre che venga eseguita)
--
ac

 ac
Ti ringrazio per la risposta che mi è già utilissima. Se non c'è un
limite alle elaborazioni che si possono impostare su un evento posso
già escludere che sia questa la causa del mio problema e non è
poco...
Quello che davvero non capisco è il perchè a volte funziona tutto
correttamente ed altre no...proverò a controllare di nuovo l'esattezza
della compilazione di tutte le query.
Ciao

Solo per informazione, sono riuscito a capire dove stava il problema;
dato che le query in questione servono ad evidenziare reports che hanno
subito determinati movimenti nella giornata precedente a quella in cui
vengono svolti i calcoli su excel, se nessuno apre e chiude access
prima di aprire excel le query ovviamente non possono aggiornarsi
(così ovvio da vergognarsi...ma senza la risposta di alessandro che mi
ha fatto escludere altre possibilità non ci sarei arrivato...)
Qualcuno può aiutarmi ad ovviare a questo inconveniente? E' possibile
temporizzare l'avvio di macro invece di farle dipendere da un evento?


Per avviare le macro devi avviare Access. L'avvio di access e' a carico 
del S.O.. A meno che non provvedi ad una partenza automatica e a una 
esecuzione automatica delle macro credo che non ne esci.
--
ac

 ac
Quindi, se ho capito bene, dovrei mettere le mie macro su apertura e
demandare l'apertura del programma alle operazioni pianificate?
Non esiste la possibilità, lasciando il programma sempre aperto, di
far girare le macro ad un oraro prestabilito, in questo caso dopo la
mezzanotte, di modo che le tabelle possano aggiornarsi?
L'evento su timer della maschera può essere usato allo scopo?
Grazie per la pazienza....

 
si certo. se lo lasci sempre aperto ed utilizzando il timer  non devi 
fare altro che lanciare le elaborazioni al "time" voluto.
Ci vuole pazienza quando dici una cosa e il "corrispondente" fa 
tutt'altro. Con te e' un piacere, fai sempre il passo in piu' oltre 
l'ostacolo ;<)
--
ac

Alessandro Cara ha scritto:

Ehm...credo che tu sia un pò troppo ottimista con me... :) la pazienza
sta, oltre che nell'indicarmi la via, anche nello spiegarmi come
poterlo fare nel dettaglio..
Lanciare le elaborazioni al time voluto non è così lampante per me
che sono un "parvenù" di access che sa quel poco che sa dall'aver
attinto alle vostre dritte quì sul gruppo.
Spero che la tua non si sia esaurita...


Il form con il codice deve essere attivo.
Attivi il timer impostando l'intervallo e attivando l'evento su timer 
(li trovi entrambi sulla scheda eventi delle proprieta', sono adiacenti).
Probabilmente e' il caso che ti definisci una property nel db in cui 
metti l'ultimo aggiornamento eseguito altrimenti rischi di lanciare le 
elaborazioni anche quando non e' necessario
Nella routine di evento metti il test sull'orario e/o sullo status della 
property se il test ti consiglia di eseguire gli aggiornamenti li esegui.
Non ho codice gia' fatto ero quasi certo che ci fosse qualcosa sul sito 
comune ma non ho trovato nulla. Per una semplice prova il codice da 
scrivere e' comunque ridotto del tipo
Sub Form_Timer(()
   if format(now,"hh") = "00" then
      elabora
   end if
end sub
se metti un intervaltime intorno ai 50 minuti il tutto dovrebbe funzionare
--
ac
--
ac

 ac
Sono tornato ora, provo subito, intanto grazie...