Ricerca dalla lettera alla lettera

Tutte le novità sul nuovo prodotto. Per chi vuole condividere le proprie esperienze su questa nuova release

Moderatore: Moderatori

Rispondi
andry
Messaggi: 108
Iscritto il: martedì 25 maggio 2004, 2:00
Contatta:

Ricerca dalla lettera alla lettera

Messaggio da andry » venerdì 29 luglio 2005, 17:16

Salve a tutti,
devo fare una ricerca su un campo testa dalla lettera alla lettera per esempio dalla a alla d etc etc.
Il campo può essere composto da + parole (ad esempio Alessandro Del Piero) ma a me interessa che mi trovi solo quelli con la iniziale della prima parola.
Con la seguente sintassi =="a"* mi trova tutti quelli che cominciano per a nella prima parola, ho provato con =="a"*..=="d"* ma non funziona.

Come posso fare?

raybaudi
Messaggi: 3616
Iscritto il: sabato 7 febbraio 2004, 1:00
Località: Roma
Contatta:

Messaggio da raybaudi » venerdì 29 luglio 2005, 17:53

Ciao,

non vuoi usare un calcolato del tipo: sinistra(testo;1) ?
Raybaudi FMP 12 Adv. Windows XP SP3

andry
Messaggi: 108
Iscritto il: martedì 25 maggio 2004, 2:00
Contatta:

Messaggio da andry » venerdì 29 luglio 2005, 18:10

No perchè io posso anche mettere di ricercare i record da "anc" a "pal" (per ricercare ad esempio le citta da ancona a palermo).

Mi servirebbe di poter fare entrambe le cose.....

raybaudi
Messaggi: 3616
Iscritto il: sabato 7 febbraio 2004, 1:00
Località: Roma
Contatta:

Messaggio da raybaudi » venerdì 29 luglio 2005, 23:52

Ho trovato la soluzione al tuo problema... :D

ed è una soluzione particolare !

Sfrutta un trucchetto operabile con le funzioni di testo...

Voglio premettere che nel mio DB dei comuni e frazioni d'Italia (oltre 40.000 record), la ricerca da un esito immediato.
La ricerca è libera come volevi (dalla A alla D, da PER a PRA eccetera), ma il numero di lettere, sia per il campo FROM che per il campo TO, deve sempre essere eguale.

Ma passiamo alla descrizione.

Devi definire tre campi:

1) "From": globale testo
2) "To": globale testo
3) "CalcolatoPerRicerca": calcolato di tipo testo non memorizzato e calcolo:
"zz" & Sinistra ( Comune; Lunghezza ( From ) )

Poi definisci lo script: Ricerca

Codice: Seleziona tutto

Loop
Mostra finestra personalizz.["Ricerca";"inserisci nei due campi le lettere per la ricerca";From;To]
If [Lunghezza(From)≠Lungezza(To)]
Mostra finestra personalizz.["Errore";"Il numero di lettere contenuto nei due campi deve essere eguale"]
End If
Exit Loop If[Lunghezza(From)=Lungezza(To)]
End Loop
Passa al modo Trova[]
Inserisci risultato calcolato[Seleziona;CalcolatoPerRicerca; "zz" & From & "...zz" & To]
Esegui la ricerca[]
Ordina i record[  Ripristina] <-- ordina in base al campo CalcolatoPerRicerca
Quindi divertiti ! :wink:

P.S.: questo è un esempio che potrai certamente migliorare ed adattare alle tue esigenze.
Raybaudi FMP 12 Adv. Windows XP SP3

Rispondi