Interazione vba tra access e excel

di il
4 risposte

Interazione vba tra access e excel

Premesso che utilizzo un database in access dove i dati delle sue tabelle, provenienti da trasmissione di altri software non perfettamente allineati, a volte contengono caratteri erroneamente riconosciuti ad esempio una E accentata potrebbe essere stata acquisita come "+ ", oppure una I accentata con il simbolo ¦.

Nel database in access ho predisposto una maschera connessa ad una query che interroga la tabella per cercare nella colonna RagSoc i caratteri speciali da rimuovere sostituendoli con quelli corretti.
Sono riuscito solo nella prima parte, non riuscendo a trovare il modo di correggere gli errori individuati.
Ho trovato però una via diversa per riuscirci, ho dato il comando in vba per aprire la form sempre in modalità foglio dati. A questo punto seleziono la colonna RagSoc e la copio.
Apro quindi un file in excel dove (fermo restando che esiste la possibilità nativa di visualizzare la finestra trova e sostituisci) , grazie al vba ho predisposto delll istruzioni per cui, dopo aver incollato nella colonna "A" quanto copiato da access, avvio una macro che innanzitutto con la funzione trim rimuove gli eventuali spazi antecedenti o successivi ai caratteri di ogni cella, a questo punto individua qual è l'ultima riga piena della colonna, seleziona quindi il range delle celle dove intervenire, cerca tutti i caratteri speciali che ho ritenuto necessario includere e provvede a sostituire quelli che riconosce, terminate e sostituzioni seleziona di nuovo il range di celle fino all'ultima riga non vuota e ne copia il contenuto, che resta residente in memoria.
Torno dunque al mio file in access, seleziono la colonna RagSoc e vi incollo il contenuto sostituendo quello precedente.
Un pò farraginoso, ma meno complesso di dover sostituire in access i caratteri errati nella colonna RagSoc.

Mi chiedevo se da access, nel momento in cui utilizzo la maschera di cui accennavo sopra, è possibile predisporre istruzioni in vba per chiedere di copiare la colonna, di aprire il file excel, incollare la colonna copiata nella colonna del worksheet, avviare la macro predisposta nello stesso file excel, tornare alla maschera di access (che ripeto è visualizzata in formato foglio di lavoro) e incollare quanto già copiato e a questo punto chiudere il file excel e tornare nuovamente alla maschera di access mettendo a fuoco un dei sui record.


Ringrazio anticipatamente per ogni consiglio

4 Risposte

Devi accedere o registrarti per scrivere nel forum
4 risposte