Newsgroup: it.comp.appl.access
Titolo: Estrarre prima parola

Da un campo testo vorrei estrarre solo la prima parola e il numero di 
occorrenze. C'è un modo per risolvere senza mettersi a fare il parsing 
del campo fino a trovare il primo spazio? Grazie
 
-- 
Greg


Non devi fare Parsing per trovare il 1° Spazio...
Funzione INSTR(....) cerca la posizione del 1° Spazio... e quello che viene prima è la prima parola(forse)...
Mid$(TuoTesto,1,INstr(TuoTesto," ")-1)
 
Ora per trovare le occorrenze cosa intendi...?
Vuoi sapere quante ce ne sono...?
 
Devi usare il VBA per questo... e devi usare sempre, ma aggiorni [START] parametro Optional con la Posizione dell'ultima Occorrenza... e procedi.
 
Alternativa fai uno SPLIT con la Parola e con Ubound(varArray) sai quante occorrenze ci sono ed ogni Item dell'arrai contiene le frazioni di stringa...
 
Vedi tu...
 
@Alex

 Vuoi sapere quante ce ne sono...?
 
Ho una lista di ricette:
uova in camicia
pollo alla spiedo
penne all'arrabbiata
uova fritte
 
 
Io vorrei orrebere questo:
penne 1
pollo 1
uova 2
 
-- 
Greg


Greg... dai fai uno sforzo..., dipingi uno scenario e poi ne hai uno che è tutt'altro...!
Dove devi cercare, all'interno di una stessa Stringa o di un Database...?
Se in una stringa ti ho dato la soluzione, creati la Routine.
 
Se devi cercare nei TITOLI di un Database se la parola UOVA è presente in più ricette non fai prima a fare una Query con un Campo Calcolato con DCOUNT, oppure una SubSelect COUNT...?
 
Sei certo che sia una cosa furba cercare UOVA nel Titolo di una Ricetta...?
 
@Alex

Il 20/12/2015 20:53:53 @Alex ha scritto:
Scusa, deve essere colpa mia ma non l'ho colta :(
 
 
Se devi cercare nei TITOLI di un Database se la parola UOVA è presente 
in più ricette non fai prima a fare una Query con un Campo Calcolato 
con DCOUNT, oppure una SubSelect COUNT...?
 
Ma io non so, in una query, a priori dove finisce la parola
 
 
Sei certo che sia una cosa furba cercare UOVA nel Titolo di una 
Ricetta...?
 
Non vuole essere furba, ma vuole dare al cuoco l'informazione che nel 
database ci sono 7 ricette che parlano di uova, 6 di broccoli...
poi se vuole clicca sulla voce e nella listbox appaiono i nomi delle 
ricette per esteso, poi sceglie una di queste e gli compare tutto 
l'ambaradan che gli serve, preparazione, ingredienti, foto...
 
Comunque ho risolto in modo drastico facendo il parsing del titol, 
prendendo i caratteri prima dello spazio e salvando la parola in un 
nuovo campo. Mi rimane la curiosità di sapere  se si poteva fare con 
unq query
 
-- 
Greg


Se la ricetta si chiama "Torta di riso"... cosa cerchi come ingrediente Torta...?
 
E se nella torta di riso ci sono le Uova...? Spero di si... pensi di trovarle..?
 
Boh io non capisco...  ma contento tu... io lo sono di più.
 
@Alex

 @Alex
 
Scusa provo a spiegare meglio.
Ho tabella delle ricette, con il campo Nome e altri campi.
Consideriamo solo il cmapo Nome.
Per esempio Abbiamo:
- Torta di riso
- Torta di mele
- Uova sode
- Penne al ragù
 
Domanda:
Voglio la prima parola di ogni ricetta con a fianco quante ricette 
cominciano con quel nome
 
Risposta:
 
Ricetta    Num
-------    -----
1) Penne     1
2) Torta     2
3) Uova      1
4) ....
 
Soluzione: si può scrivere una query per ottere il risultato sorpa 
senza ricorrere ad una tabella di appoggio su cui poi eseguire una 
query di raggruppamento?
 
Spero che adesso si capisca :)
 
-- 
Greg


Si la soluzione l'ho già fornita sopra...!
 
SELECT Count(*) FROM TuaTabella
WHERE Ricetta LIKE 'Torta*'
 
Ora è evidente che a te basta rendere dinamico quel 'Torta*' 
 
SELECT Count(*) FROM TuaTabella
WHERE Ricetta LIKE ' & Mid$(Forms!NomeForm!TextBoxRicettaDaCercare;1;Instr(Forms!NomeForm!TextBoxRicettaDaCercare;" ")-1) & *'
 
 
Una roba simile...!
 
@Alex