Funzione excel da usare in access

di il
5 risposte

Funzione excel da usare in access

Ciao a tutti,
devo trasferire un foglio excel in un database di access come tabella ma ho un problema con un campo.
Mi spiego:
il foglio excel ha diverse colonne i cui dati sono inseriti dall'operatore ad eccezione di due colonne:
a) la prima colonna è un contatore numerico che in automatico aggiunge un'unità al numero della cella che lo precede: 01; 02; 03 etc. questa colonna corrisponde quindi al campo ID univoco della tabella access e nel trasferimento in formato tabella di access non ho problemi;
b) la seconda colonna, invece, è un codice, sempre univoco, che nel foglio excel si crea attraverso una semplice funzione che già ha una sigla iniziale, ossia CTR, a cui aggiunge il dato del contatore numerico, il carattere /, il dato della colonna "Anno" e quello della "Sezione" tutti della medesima riga. La funzione in excel è assai semplice: ="CTR"&[cella contatore]&"/"&[cella Anno]&[cella Sezione]. Access purtroppo non eredita tale funzione quando trasferisco il foglio in formato tabella.
Come posso risolvere?
Grazie in anticipo

5 Risposte

  • Re: Funzione excel da usare in access

    luc_fiz ha scritto:


    ...
    b) la seconda colonna, invece, è un codice, sempre univoco, che nel foglio excel si crea attraverso una semplice funzione ... Access purtroppo non eredita tale funzione quando trasferisco il foglio in formato tabella.
    Come posso risolvere?
    E' un'operazione che farai una tantum? Stai importando dati da Excel per cambiare modalità di gestione del tutto e passare ad Access? Dipende molto da cosa c'è dopo questa operazione di importazione della tabella. Se fornisci un quadro un po' più ampio la risposta sarà tarata alla tua reale necessità.
  • Re: Funzione excel da usare in access

    luc_fiz ha scritto:


    Ciao a tutti,
    devo trasferire un foglio excel in un database di access come tabella ma ho un problema con un campo.
    Mi spiego:
    il foglio excel ha diverse colonne i cui dati sono inseriti dall'operatore ad eccezione di due colonne:
    a) la prima colonna è un contatore numerico che in automatico aggiunge un'unità al numero della cella che lo precede: 01; 02; 03 etc. questa colonna corrisponde quindi al campo ID univoco della tabella access e nel trasferimento in formato tabella di access non ho problemi;
    Sai che 01;02 non sono Numeri ma Testo...?
    Verifica che Access nell'importazione li interpreti correttamente.

    luc_fiz ha scritto:


    b) la seconda colonna, invece, è un codice, sempre univoco, che nel foglio excel si crea attraverso una semplice funzione che già ha una sigla iniziale, ossia CTR, a cui aggiunge il dato del contatore numerico, il carattere /, il dato della colonna "Anno" e quello della "Sezione" tutti della medesima riga. La funzione in excel è assai semplice: ="CTR"&[cella contatore]&"/"&[cella Anno]&[cella Sezione]. Access purtroppo non eredita tale funzione quando trasferisco il foglio in formato tabella.
    Come posso risolvere?
    Grazie in anticipo
    Access non riconosce le Funzioni di Excel, ma il VALORE assunto dalla cella.
    Quindi se devi implementarne l'utilizzo in Access, devi inserire nella proprietà DefaultValue(io lo farei nella Maschera e non in tabella) la funzione equivalente.
  • Re: Funzione excel da usare in access

    Ciao e grazie a tutti per l'aiuto.
    Il campo ID è impostato nella tabella di access come chiave univoca e sono riuscito a fargli proseguire la numerazione ereditata. Il problema è del campo codice che dovrebbe continuare in automatico a creare, appunto, il codice nella sequenza sopra descritta.
    Sò bene che attraverso una quaery di inserimento è possibile ottenere il risultato auspicato, tanté che per ora le diverse tabelle del database si relazionano proprio con quest'ultima dove ho aggiunto l'espressione ad hoc e va bene. Per scrupolo, però, avrei voluto che il tutto fosse possibile già a livello di tabella .... forse elecubro un pò
  • Re: Funzione excel da usare in access

    Purtroppo dici cose strane che fatico a comprendere...!

    luc_fiz ha scritto:


    Ciao e grazie a tutti per l'aiuto.
    Il campo ID è impostato nella tabella di access come chiave univoca e sono riuscito a fargli proseguire la numerazione ereditata.
    Non deve essere un COUNTER, quindi lo incrementi tu in qualche modo perchè il cmapo COUNTER non può essere scritto in fase di IMPORTAZIONE... e già quì stai fornendo indicazioni ambigue per noi che leggiamo, ma se va bene e te è solo un nostro dubbio di interpretazione non indispensabile.

    luc_fiz ha scritto:


    Il problema è del campo codice che dovrebbe continuare in automatico a creare, appunto, il codice nella sequenza sopra descritta.
    E per questo di norma, si deve distinguere la fase di Import da quella di Gestione dati...

    Come ti suggerivo se devi rendere accessibili i dati all'utente, lo devi fare con una Maschera e non con una Tabella, per questo i campi oggetto di Calcolo si gestiscono nelle maschere per la finalità che serve a te, ma deve essere fatto come DefaultValue altrimenti fai dei disastri.

    La cosa cambia però in fase di IMPORT, che ovviamente non hai una Maschera, quindi dopo l'import si deve eseguire una Query di UPDATE che ricalcoli i valori dei Records importati.

    luc_fiz ha scritto:


    Sò bene che attraverso una quaery di inserimento è possibile ottenere il risultato auspicato, tanté che per ora le diverse tabelle del database si relazionano proprio con quest'ultima dove ho aggiunto l'espressione ad hoc e va bene.
    Direi proprio che non è il tuo caso dal momento che non fai una query di inserimento... ma userai un Importazione con TransfertSpreadsheet...!
    Se invece fai una query di inserimento diretta da Excel allora puoi inserire nella QUery anche la Valorizzazione del Campo Calcolato.

    Quì trovi un esempio di come accedere, sfruttando i Driver ISAM, direttamente ai Dati da comandi DDL, in questo esempio usa ADO, ma la sintassi del comando DDL dovrebbe funzionare anche con DAO.

    https://www.experts-exchange.com/questions/28972266/Excel-VBA-Tansferring-data-excel-to-access-table.html

    luc_fiz ha scritto:


    Per scrupolo, però, avrei voluto che il tutto fosse possibile già a livello di tabella .... forse elecubro un pò
    A livello di TABELLA è proprio sbagliato, e nel tuo caso si potrebbe fare solo usando i Campi Calcolati in Tabella, cosa che qualsiasi programmatore evita come la peste.
  • Re: Funzione excel da usare in access

    Grazie Alex ... sul campo ID in effetti sono stato riduttivo oltreché impreciso nell'esposizione poiché ho definito una importazione di dati ciò che in realtà è stato un copia e incolla. In poche parole ho creato una tabella con i campi nominati come da foglio excel e poi con il copia e incolla ho importato (ovvero copiato) tutto nella tabella. Il primo campo, ossia quello ID Counter, ha ereditato la progressione numerica nel senso che dopo aver incollato i dati, il campo ID Counter mi ha chiesto se volevo proseguire la numerazione ed ho risposto affermativamente.
    Grazie per il link ... e grazie per il suggerimento sulla maschera che ovviamente seguirò compreso sopratutto quello di evitare a piè pariun campo calcolato in Tabella anche perchè non sarei proprio come fare.
Devi accedere o registrarti per scrivere nel forum
5 risposte