Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

trasformare vba in access

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

trasformare vba in access

Postdi miko » 24/05/10 20:06

salve,
finalmente dopo mesi di lavoro, grazie al contributo ed impegno di flash ed anthony, ho realizzato un progetto in excel;
ma eseguendo il progetto ho scoperto con mia grande delusione che i tempi di elaborazione sono astronomici, giorni e per una macro anche settimane, solo per ottenere il risultato di semplici somme di valori per righe.
chiedendo conforto nel forum, gli esperti mi hanno consigliato il passaggio ad access che "forse", rispetto ad altri linguaggi di programmazione ed all'uso di altri software tipo matlab, potrebbe risolvere il problema.
sono solo due i file excel, contenenti la stessa macro ma che svolge lavori leggermente differenti solo per il risultato finale, che dovrei, se possibile, trasformare in access.
i due file sono necessari poichè il risultato finale di uno serve al lavoro dell'altro.
vi spiego con l'ausilio di immagini il lavoro svolto dal primo file excel.
tramite un software gratuito MRWINFORLIFE, per chi è interessato posto il link: http://www.mrwinforlife.it/Software.asp ... WinForLife,
esporto le combinazioni, estratte, contenute nel suo archivio;
vi è la possibilità di usufruire del suo database in access, ma non so come sfruttarlo, oppure tramite un file di testo che ha questa struttura http://rapidshare.com/files/391123443/c ... i.Txt.html
importo il txt per 2 volte nel foglio1, range-1 e range-2 come in figura1.
quindi i due range contengono gli stessi valori;
figura 1
Immagine
consideriamo la combinazione 1 sotto range-1;
eliminiamo momentaneamente i valori uguali alla combinazione 1 da tutte le
combinazioni sotto range-2;
avremo una situazione come in
figura 2
Immagine
a questo punto calcoliamo le somme solo per ogni riga sotto il range-2 e le inseriamo nella colonna W, non considerando le righe vuote, come la 1 perchè inutile, e le righe con tutte le celle piene, come la 5, perchè falserebbero il risultato.
calcoliamo il valore minimo ed il massimo delle somme nella colonna W ed inseriamo
tali min e max in X3 ed Y3.
cancelliamo la colonna W, ripristiniamo il range-2 con i valori originari;
consideriamo la combinazione 2 sotto range-1, ripetiamo il ciclo ed inseriamo i min e max in X4 ed Y4.
ogni volta che si importano nuove combinazioni in range-1 e 2, e quando tutte le combinazioni sotto range-1 sono state esaminate, la macro confronta i valori attuali colonne X ed Y con i risultati del calcolo precedente colonne AA ed AB, e trasferisce nel foglio2 quelle combinazioni che hanno subito variazioni nei valori min e max, cioè nel confronto tra X ed AA e tra Y ed AB.
i valori nelle colonne X ed Y non è necessario che siano visibili, ma è sufficiente che siano memorizzati in qualche modo poichè questi valori servono per il lavoro del file2 di excel, che come detto all'inizio usa la stessa macro, svolge lo stesso lavoro, mentre differisce per il risultato finale.
vi chiedo se è possibile realizzare questo progetto in access, e, se il vostro parere è positivo, se potete aiutarmi poichè non conosco access.
grazie ciao
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Sponsor
 

Postdi archimede » 24/05/10 20:40

miko ha scritto:vi è la possibilità di usufruire del suo database in access, ma non so come sfruttarlo
Innanzitutto se vuoi trasformare vba in access è altamente raccomandabile che impari a sfruttarlo. In secondo luogo non c'è ragione di inventarsi l'acqua calda quando, se interpreto correttamente la tua frase, i dati sono già disponibili nel formato desiderato.

Per cui, installa Access (se non l'hai già), scarica il file mdb fornito dal produttore del software e analizza con cura le tabelle che lo compongono (cioè cerca di capire in che modo i dati da manipolare sono memorizzati all'interno di Access).

Infine dai un'occhiata anche a questo, giusto per scongiurare spiacevoli fraintendimenti.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: trasformare vba in access

Postdi Anthony47 » 26/05/10 00:30

Mi permetto di dire che la discussione linkata da archimede non fa testo. E, come ulteriore indizio, vi linko la surreale discussione che lo stesso autore aveva aperto nella sezione Office: viewtopic.php?t=75330

Miko, qualche velocizzazione la puoi ottenere con Application.ScreenUpdating = False a inizio macro; impostando Calcolo in Manuale (Application.Calculation = xlManual, poi esegui Calculate quando hai bisogno di ricalcolare e Application.Calculation = xlAutomatic per ripristinare il calcolo automatico; rivedere eventuali formule che usano intervalli "indefiniti" (es A:A) , usando invece intervalli "definiti"; usare magari qualche colonna di appoggio per evitare di ripetere in piu' formule lo stesso calcolo; se usi "macro di eventi" accertati di inserire Application.EnableEvents = False in testa e Application.EnableEvents = True all' uscita; nelle macro definire le variabili in uso (istruzione Dim), utilizzando il formato sempre piu' piccolo; attenzione anche ai loop, che spesso possono essere sostituiti da algoritmi di elaborazione piu' performanti.
So che sono vaghi suggerimenti, ma sempre meno che niente....

Ciao a tutti.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13903
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: trasformare vba in access

Postdi miko » 27/05/10 10:39

salve, grazie per le indicazioni;
seguendole ho rivisto la macro, e "purtroppo" ho constatato che ci sono tutte le
Application.ScreenUpdating, Application.Calculation, Application.EnableEvents etc.
anche perchè le macro sono realizzazioni tue e di flash ed avete previsto questi eventi.
speravo che mancasse qualcosa così che il problema fosse vanificato.
credo che si tratti della grande quantità di dati da trattare.
mi sto leggendo manuali e post su access, ma fino ad ora, anche con semplici procedimenti, ho combinato solo pasticci, errori, senza ottenere il minimo progresso in programmazione access.
in mancanza del vostro aiuto credo che abbandonerò la realizzazione del progetto;
per realizzarlo in excel ho impiegato 6 mesi, per access la vedo dura ...raggiungerò l'eta pensionabile.
non pretendo un lavoro già pronto ma, come è avvenuto in excel, piccoli e semplici suggerimenti per incominciare a capire come funziona access.
saluti grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: trasformare vba in access

Postdi archimede » 27/05/10 10:55

miko ha scritto:non pretendo un lavoro già pronto ma, come è avvenuto in excel, piccoli e semplici suggerimenti per incominciare a capire come funziona access.
Access, come qualsiasi altro database, funziona che ci sono delle Tabelle che contengono i tuoi dati; queste possono essere interrogate con un linguaggio specifico: SQL.

Il suggerimento te l'ho già dato: scarica il db già fatto e vedi come sono strutturate le tabelle (non dovrebbero volerci 6 mesi); una volta compreso a grandi linee come sono fatte le tabelle, avrai il problema di interrogarle (nel gergo SQL, fare una query). A quel punto puoi venire qui e chiedere: "Ho le tabelle x e y che sono fatte così (segue elenco di nome e tipo di campi rilevanti per il tuo problema): vorrei fare una query che mi restituisce queste informazioni....".

HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Re: trasformare vba in access

Postdi archimede » 27/05/10 11:06

Aggiungo che NON c'è alcuna relazione tra un foglio Excel e una tabella di Access, anche se apparentemente sono oggetti analoghi (anche le tabelle sono fatte di righe e colonne); se tenterai di costruire delle tabelle che replicano i tuoi fogli Excel mi sa che non andrai lontano.

È necessario pensare a come vuoi registrare i dati statici (struttura delle tabelle) a prescindere dalle interrogazioni che farai dopo (sto semplificando, ma è per rendere l'idea): quello che vedi sui vogli Excel puoi pensarlo come il risultato di una (o più) query.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova


Torna a Applicazioni Office Windows


Topic correlati a "trasformare vba in access":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti