Newsgroup: it.comp.appl.access
Titolo: Testo evidenziato

Nuovamente saluti a tutti
Nel mio precedente messaggio avevo scritto:
Uso Access 97.
Per poterlo usare e anche per la curiosità di un principiante, come è
possibile far si che digitando del testo in un controllo, che si trova in
intestazione maschera, per la ricerca, che
si trova in una maschera che come origine dati fa riferimento ad una query,
dopo avere attivato la ricerca evidenziare (in un colore che non sia il
nero) il testo trovato in base al parametro.
In poche parole una cosa uguale a quello che accade sul Sitocomune quando si
fa una ricerca in Archivio messaggi ICCA.
 Poi scopiazzando dal famoso libro di Access "F1"
ho messo il seguente codice su corrente della form:
Dim StrRicerca As String, intdove As Integer
StrRicerca = Me.TxtTrova
intdove = InStr(Me.Parola.Value, StrRicerca)
If intdove Then
Me.Parola.SetFocus
Me.Parola.SelStart = intdove - 1
Me.Parola.SelLength = Len(StrRicerca)
Else
MsgBox "parola non trovata"
End If
E tutto funziona se quello che cerco esiste (fermo restando che non so come
cambiare il colore che evidenzia il testo cercato).
Però se per esempio nel controllo di ricerca digito un qualcosa che non
esiste tipo xjyhj mi appare il messaggio errore 94 "Utilizzo non valido di
Null"
PS  come mai i precedenti messaggi non mi appaiono nell'elenco del NG,quando
lo apro con Outlook ma li ho solo trovati in Google.

 lo apro con Outlook ma li ho solo trovati in Google.
Ma precedenti di quanti giorni?
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Grazie dell'interessamento
Franco


 Franco
--
Roberto



Scusa i discorsi contorti da novizio
Franco

 Dopo aver postato il messaggio precedente credo di  essere riuscito ad
eliminare l'errore di debug 94.
Ho cambiato  intdove= Instr(me.targa. value ......
con intdove=instr(me.targa.text..........
e la cosa sembra funzioni
fermo restando che rimangono le altre problematiche
Franco


[CUTTISSIMO]
Fermo restando la query che resta quella che tu hai postato qualche
messaggio fa.
Per evidenziare la porzione di controllo in base al quale hai effettuato la
selezione, a fronte dell'evento "Su corrente" della maschera prova a
generare il seguente codice VBA:
Private Sub Form_Current()
Dim StrRicerca As Variant, intdove As Integer
If Not IsNull(Me.TxtTrova) Then
If Not IsNull(Me.TARGA) Then
StrRicerca = Me.TxtTrova
intdove = InStr(Me.TARGA, StrRicerca)
If intdove Then
    Me.TARGA.SetFocus
    Me.TARGA.SelStart = intdove - 1
    Me.TARGA.SelLength = Len(StrRicerca)
Else
    intdove = InStr(Me.NOMINATIVO, StrRicerca)
    If intdove Then
        Me.NOMINATIVO.SetFocus
        Me.NOMINATIVO.SelStart = intdove - 1
        Me.NOMINATIVO.SelLength = Len(StrRicerca)
    Else
        intdove = InStr(Me.N_PERMESSO, StrRicerca)
        If intdove Then
            Me.N_PERMESSO.SetFocus
            Me.N_PERMESSO.SelStart = intdove - 1
            Me.N_PERMESSO.SelLength = Len(StrRicerca)
        End If
    End If
End If
Else
    MsgBox "parola non trovata"
End If
End If
End Sub
Verrà evidenziata la stringa di ricerca indistintamente nei tre controlli
possibili, ovvero N_PERMESSO, o TARGA o NOMINATIVO.


Grazie
 Non avevo dubbi che funzionasse, ho dovuto solo aggiungere un
If Not IsNull(Me.N_PERMESSO) Then
Rimane solo un inconveniente: se digito una targa, un numero di permesso o
un nominativo non esistenti nei campi della tabella,dopo invio non appare
l'MsgBox , scompaiono tutti i controlli collegati e nel controllo di ricerca
non appare più quanto digitato, ma la cosa buffa è che se in questo comincio
a digitare qualcosa mi riappare anche il testo che avevo scritto in
precedenza.
Comunque, ripeto, funziona benissimo con l'evidenziazione in tutte e tre i
casi.
Rigrazie e dico poco
Franco


 Franco
--
Roberto



Provo a rivedere tutto il codice. Fino a ripartire da capo se necessario.
Grazie
Franco
