Newsgroup: it.comp.appl.access
Titolo: Contare nr campi tra 2 valori

Salve ragazzi
Inizio prima di tutto augurando a tutti una Buona pasqua.
Vi espongo il mio problema, ho un testo, diciamo:
Pierino si reca al mercato compra 4 mele e se le pappa
Ora a me serve il valore (in numero) dei campi contenuti in 2 variabili
che per esempio in questo caso sono "reca" e "mele" ma potrebbero
essere anche "Pierino" e "mercato".
es.: Tra "Pierino" e "reca" il valore che mi serve è 4
E molto confuso credo :)
Grazie

 E molto confuso credo :)
Sě. Cerco di sbrogliare la matassa.
Data una stringa arbitrariamente lunga, e fornite altre due sottostringhe 
che possono essere contenute nella stringa iniziale, vuoi contare il numero 
di caratteri che ci sono tra la fine dell'ultima occorrenza della prima sottostringa 
e l'inizio della prima occorrenza della seconda sottostringa.
Esatto?
Se sě: devi utilizzare le funzioni per la manipolazione di stringhe, prima 
tra tutte la InStr.
Se no: devi spiegare meglio il tuo problema.
--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution

Esatto Gabriele, grazie della traduzione :P
Credi che potresti scrivermi 2 righe di codice usando la frase che ho
portato di esempio? Se rimane facile naturalmente!
Altrimenti non fà nulla :)

 Altrimenti non fà nulla :)
Ci provo.
Il codice seguente l'ho scritto di getto, quindi potrebbe essere necessario 
fare delle modifiche. Controllalo.
========================================
Dim strMadre As String
Dim strSub1 As String
Dim strSub2 As String
Dim intPosSub1 As Integer
Dim intPosSub2 As Integer
Dim intDistanza As Integer
strMadre = "Pierino si reca al mercato compra 4 mele e se le pappa"
strSub1 = "Pierino"
strSub2 = "reca"
intPosSub1 = InStr(strSub1, strMadre)
intPosSub2 = InStrRev(strSub2, strMadre)
intDistanza = intPosSub2 - intPosSub1 + Len(strSub1)
========================================


Grazie, gentilissimo
la sto usando su Access
però mi restituisce un'errore evidenziando InStrRev
'Sub o function non definita'
Mi manca qualche riferimento forse?


Probabilmente DAO 3.6
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 Mi manca qualche riferimento forse?
Ho provato proprio in questo momento il codice che ti ho inviato ma non mi 
da alcun problema e nei riferimenti del VBA non ho niente di particolare, 
tantomeno il riferimento a DAO che ti ha suggerito Massimiliano.
Io ho fatto il test su Access XP. Tu su quale versione di Access la stai 
provando?


 Probabilmente DAO 3.6
Direi proprio di no.
Io non ho alcun riferimento a parte di due fondamentali che non si posso 
eliminare e non mi da nessun problema.


Si ineffetti a casa funziona ed ho anche io Access XP
ma in ufficio uso Access 97

Però non capisco
quando vado a modificare i valori
strSub1  
strSub2 
mi restituisce sempre 7

 
Sě, abbastanza. :-(
Dunque, ricapitoliamo:
Se le due variabili sono var1 = "reca" e var2 = "mele" devo recuperare 
tutti i valori contenuti tra le due parole (in questo caso 4)
Se le due variabili sono var1 = "Pierino" e var2 = "reca" perchč dici 
che č 4? 4 č al di fuori della tua ricerca.
Cerca di fare qualche altro esempio motivandolo.
-- 
===================================
Sandro Bizioli
http://blogs.dotnethell.it/sandro/
===================================

Pierino si reca al mercato compra 4 mele e se le pappa
Come dice Gabriele: contare il numero
di caratteri che ci sono tra la fine dell'ultima occorrenza della prima
sottostringa
e l'inizio della prima occorrenza della seconda sottostringa.
Tra Pierino e reca ci sono 2 spazi e 2 caratteri della parola "si" = 4
Cmq ho risolto così dato che la funzione InStrRev per ACC97 non esiste
(si può recuperare dal sito comune):
Dim strMadre As String
Dim strSub1 As String
Dim strSub2 As String
Dim intPosSub1 As Integer
Dim intPosSub2 As Integer
Dim intDistanza As Integer
strMadre = "Pierino si reca al mercato compra 4 mele e se le pappa"
strSub1 = "Pierino"
strSub2 = "mercato"
intPosSub1 = InStr(1, strMadre, strSub1, 0)
intPosSub2 = InStr(1, strMadre, strSub2, 0)
MsgBox "Valore compreso: " & intPosSub2 - intPosSub1 - Len(strSub1)