[SUGGERIMENTO] Estrarre una stringa su più celle

di il
8 risposte

[SUGGERIMENTO] Estrarre una stringa su più celle

Buongiorno,
ho una tabella con celle popolate come nell'esempio:
FILETTO M08x1,25-6g-L=25
Con Access 2013 devo estrarre (facendo riferimento all'esempio) i seguenti campi:
CELLA 1 - FILETTO
CELLA 2 - M08x1,25-6g
CELLA 3 - L=25 (o anche solo 25)

Il numero di caratteri della prima cella può variare.
Potrebbe esserci scritto "FILETTO" (come in questo caso) o "ZIGRINATURA" e, così come la prima, possono variare anche i numeri di caratteri che voglio inserire nelle celle successive quindi devo escludere un Mid.
C'è modo, con Access, di estrarre una cella fino ad un carattere da me stabilito (ad esempio lo spazio per la prima cella e la prima "L" da destra per la seconda cella)?

8 Risposte

  • Re: [SUGGERIMENTO] Estrarre una stringa su più celle

    Si si può fare tutto...
    Quello che non ci dici è quanta autonomia di VBA possiedi, e questo potrebbe fare la grossa differenza.
  • Re: [SUGGERIMENTO] Estrarre una stringa su più celle

    @Alex ha scritto:


    Si si può fare tutto...
    Quello che non ci dici è quanta autonomia di VBA possiedi, e questo potrebbe fare la grossa differenza.
    Ciao Alex,
    mi piace dire che uso Access perché non so quasi nulla di VBA, SQL e affini.
  • Re: [SUGGERIMENTO] Estrarre una stringa su più celle

    leo1986pc ha scritto:


    ...mi piace dire che uso Access perché non so quasi nulla di VBA...
    e spiace rispondere che senza VBA è praticamente impossibile. Se il quasi nulla che sai di vba è il codice che risulta dalla composizione guidata, per quello che devi fare togli pure il quasi.
    Funzioni da imparare: Len, Mid, Left, Right, InStr, InStrRev. La documentazione in merito la trovi anche sul sito Microsoft o tramite un motore di ricerca. Sperando di non dover scomodare le espressioni regolari. Intanto parti con quelle 5 poi proponi qualcosa e su quello si ragiona.
  • Re: [SUGGERIMENTO] Estrarre una stringa su più celle

    Scusa, ma quale sarebbe lo scopo del tag [SUGGERIMENTO] che hai messo nel titolo?
  • Re: [SUGGERIMENTO] Estrarre una stringa su più celle

    gibra ha scritto:


    Scusa, ma quale sarebbe lo scopo del tag [SUGGERIMENTO] che hai messo nel titolo?
    Credevo che qualcuno potesse suggerirmi una funzione o una combinazione di funzioni/operatori che non avevo considerato.

    Credo che questo weekend comincerò a studiare VBA.
  • Re: [SUGGERIMENTO] Estrarre una stringa su più celle

    Buongiorno,
    Il suggerimento é quello che ti ha dato phil...

    Nel tuo caso devi usare una combinazione delle funzioni che ti sono state indicate.. Ad esempio instr https://support.office.com/it-it/article/Funzione-InStr-85d3392c-3b1c-4232-bb18-77cd0cb8a55b

    Secondo me puoi risolvere anche con il generatore di espressioni nelle query... Comincia col creare un campo calcolato in una query per calcolarti la "prima cella"... Come fare? Con le funzioni instr, mid.

    1 trovi posizione carattere " " con instr
    2 con mid passi la stringa, parti da 1 e setti lunghezza pari a quanto ricavato nel punto precedente.

    Poi per le altre "celle" (occhio che non sei in excel) il funzionamento é piuttosto simile ma ti serviranno anche le altre funzioni che ti ha indicato phil... Prova ad abozzare qualcosa tu.
  • Re: [SUGGERIMENTO] Estrarre una stringa su più celle

    Ho cominciato con i primi esperimenti (con Excel) per capire come muovermi.

    Cella A2: FILETTO M08x1,25-6g-L=25

    Cella B2:
    =SINISTRA(A2;TROVA(" ";A2))
    Risultato: "FILETTO " ok

    Cella C2:
    =STRINGA.ESTRAI(A2;RICERCA(" ";A2)+1;RICERCA("L";A2;4))
    Risultato: "M08x1,25-6g-L=25" non ok perché vorrei solo "M08x1,25-6g"
    Ho notato che il problema deriva dalla stringa
    RICERCA("L";A2;4)
    che, anziché contare i caratteri tra lo SPAZIO e la seconda L mi restituisce 21.

    Perché?
  • Re: [SUGGERIMENTO] Estrarre una stringa su più celle

    Ma quelle istruzioni in Access non le userai mai... se parti da Excel continua poi... perché Access come database ha regole completamente differenti.
Devi accedere o registrarti per scrivere nel forum
8 risposte