Newsgroup: it.comp.appl.access
Titolo: Usare anche lo spazio in una funzione ricerca

Salve NG
Uso questa funzione "su modifica" di una casella di testo per filtrare
i dati in maschera continua collegata ad una query aggiornabile
=====================
Private Sub SelRazza_Change()
On Error GoTo SelRazza_Err
    Dim strMsg As String, strTitolo As String
    Dim intStile As Integer
    Forms!F_Vis_dett_totali.Requery
    Forms!F_Vis_dett_totali!SelRazza.SetFocus
    If IsNull(Forms!F_Vis_dett_totali!SelRazza.Text) Then
    Else
        Forms!F_Vis_dett_totali!SelRazza.SelStart = Len(Forms!
F_Vis_dett_totali!SelRazza.Text)
        Forms!F_Vis_dett_totali!SelRazza.SelLength = 0
    End If
SelRazza_Exit:
    Exit Sub
SelRazza_Err:
        strMsg = "NESSUN RECORD PER LA RAZZA --> " & SelRazza & "." &
vbCrLf + vbCrLf _
               & "                 Controllare i dati immessi"
    intStile = vbOKOnly
    strTitolo = "ATTENZIONE"
    MsgBox strMsg, intStile, strTitolo
        Forms!F_Vis_dett_totali!SelRazza = Null
        Forms!F_Vis_dett_totali.Requery
End Sub
=====================
Purtroppo però quando il valore è composto da + parole pur premento la
barra spaziatrice per emulare lo spazio la cosa non funziona
quindi se ho
Pastore maremmano
e
Pastore tedesco
Trovo il buon pastore ma non riesco a filtrare il resto
Come potrei fare per ovviare al problema?
Tenkiu
Alex


[cut]
Ultimamente non ci vedo piu'. Mi sottolinei dove fai il filtro, per 
favore. E quella requery messa all'inizio quale funzione svolge?
-- 
ac
y-1=x

La maschera è continua ed ha come origine una query aggiornabile
SelRazza è una casella di testo non associata
nella query al campo Razza ho questo criterio
Like [Forms]![F_Vis_dett_totali]![SelRazza] & "*"
Il requery mi serve ad aggiornare la maschera mentre scrivo nella
casella di testo

 
urca! Ma il file su cui fai requery e' un "failetto" vero?
Ho l'impressione che access faccia la trim del dato di filtro (sel 
razza). Fare questa prova e' semplicissimo. Su una casella di testo 
associata metti dei blanks in coda e vedi poi sulla tabella se te li ha 
mantenuti.
Mi vengono in mente 2 o 3 soluzioni ma la cosa che forse e' piu' 
"indolore" e' quella di fargli fare il ciclo per la requery solo se 
l'ultimo carattere su .text e' diverso da spazio. Questa modifica 
dovrebbe essere semplice (una if che include il corpo della tua 
funzione)se poi dopo prova non la trovi "attagliante" ci possono essere 
altre soluzioni.
Le altre coinvolgono la sostituzione dello spazio con relativo 
trattamento su query ed il salvataggio del .txt da qualche parte ed il 
suo ricaricamento successivo sul controllo di filtro.
Decisamente piu' rognose e meno "prestanti".
Uhmmm.... che succede se sposti la requery prima della exit ed utilizzi 
il .text sulla query?
-- 
ac
y-1=x

Non ci credo !!!!!
Guarda un po come ho risolto:
=====================
Private Sub SelRazza_Change()
On Error GoTo SelRazza_Err
    Dim strMsg As String, strTitolo As String
    Dim intStile As Integer
'----------------------------------------------------------------------------
qui la modifica
    If Right(Me.SelRazza.Text, 1) = " " Then
    Else
    Forms!F_Vis_dett_totali.Requery
    Forms!F_Vis_dett_totali!SelRazza.SetFocus
    If IsNull(Forms!F_Vis_dett_totali!SelRazza.Text) Then
    Else
        Forms!F_Vis_dett_totali!SelRazza.SelStart = Len(Forms!
F_Vis_dett_totali!SelRazza.Text)
        Forms!F_Vis_dett_totali!SelRazza.SelLength = 0
    End If
    End If
SelRazza_Exit:
    Exit Sub
SelRazza_Err:
        strMsg = "NESSUN RECORD PER LA RAZZA --> " & SelRazza & "." &
vbCrLf + vbCrLf _
               & "                 Controllare i dati immessi"
    intStile = vbOKOnly
    strTitolo = "ATTENZIONE"
    MsgBox strMsg, intStile, strTitolo
        Forms!F_Vis_dett_totali!SelRazza = Null
        Forms!F_Vis_dett_totali.Requery
End Sub
=====================
Grazie Ale
;)

 Guarda un po come ho risolto:
Una delle mie massime e': Se del codice non funziona, lasciarlo 
decantare, poi togliere qualche istruzione ed il tutto andra' una 
meraviglia.
Comunque prova a:
1) inserire un carattere per attivare il "change"
2) fare un backspace
3) potrebbe andare in errore
-- 
ac
y-1=x

 3) potrebbe andare in errore
test effettuato
esito negativo
ho pulito un po il codice.....faceva schifo
grazie ancora
:)