Newsgroup: it.comp.appl.access
Titolo: Ricerca in mashere

Gentilmente Roberto mi aveva indicato come fare le ricerche nelle maschere
con FindRecord, ho inserito nell'evento "su click":
DoCmd.FindRecord "pippo", acAnywhere
Perň nella mia ignoranza di Access non riesco a capire come posso fare in
modo che mi appaia una finestra in cui scrivere cosa voglio cercare (non
voglio assegnare prima questo valore, come ho fatto ora, nel mio es.
"pippo") e che non si fermi al primo record trovato (se inserisco "pippo" in
un altro record e ri-clicco su "trova" non si sposta sul secondo record).
Grazie.
Fabio

 ha scritto nel messaggio
news:lvdr7b...@fabio.locale...

Non so se ti puň essere di aiuto, io con questo codice riesco a "ricercare"
su tutti record, quando arriva alla fine la ricerca si sposta di nuovo sul
primo record.
    dim strNome as String
    dim strTempNome as String
    txtInCuiCercare.SetFocus
    strTempNome = txtInCuiCercare.Value
    strNome = InputBox("Immettere stringa di ricerca", TitoloMaschera)
    If len(strNome)= 0 Then
        Exit Sub
    End If
    DoCmd.FindRecord strNome, acAnywhere, False, acSearchAll, False, , False
    If txtInCuiCercare.Value = strTempNome Then
        DoCmd.GoToRecord , , acFirst
        DoCmd.FindRecord strNome, acAnywhere, False, acSearchAll, False, ,
False
    End If
Ciao, Linda

     txtInCuiCercare.SetFocus
Mi potresti spiegare questo? Io devo cercare solo nel DB, non in un txt.
Ti ringrazio
Ciao
Fabio


L'esempio che ho fatto io ipotizzava proprio la ricerca in un campo
associato alla casella txtInCuiCercare, proprio per questo per prima cosa
sposto il Focus su txtInCuiCercare.
Ciao

 ha scritto nel messaggio news:lvdr7b...@fabio.locale...

Non e' ottimizzato ed ha qualche difetto, cmq
il suo lavoro lo fa.
Allora. In un modulo a parte inserisci la seguente
funzione:

 ha scritto nel messaggio news:lvdr7b...@fabio.locale...

Non e' ottimizzato ed ha qualche difetto, cmq
il suo lavoro lo fa.
Allora. In un modulo a parte inserisci la seguente
funzione:
----------------------------------------
Public Function cercainform(mytxtctl As TextBox)
    If miavar = 0 Then
    GoTo trovarecord
    Else
    GoTo trovasuccessivo
    End If
trovarecord:
   If IsNull(mytxtctl.Value) Then
   MsgBox "Immettere un criterio di ricerca", vbExclamation
   Exit Function
   End If
   stringa = mytxtctl.Value
   mytxtctl.Value = Nothing
   DoCmd.FindRecord stringa, acAnywhere, False, acSearchAll, True, acAll, True
   mytxtctl.Value = stringa
   miavar = miavar + 1
   Exit Function
trovasuccessivo:
    stringa = mytxtctl.Value
    mytxtctl.Value = Nothing
    For i = 1 To 2
    DoCmd.FindNext
    Next
    mytxtctl.Value = stringa
    Exit Function
End Function
----------------------------------------
Nella tua maschera inserisci una casella
di testo e chiamala MiaCaselladiTesto (o
come ti pare) ed un pulsante che chiami
MioPulsanteTrova (o come ti pare anche in questo
caso). Nel modulo del tuo form inserisci il
seguente codice:
Private Sub MiaCaselladiTesto_Change()
    miavar = 0
End Sub
Private Sub MioPulsanteTrova_Click()
    Call cercainform(MiaCaselladiTesto)
End Sub
Private Sub Form_Close()
    miavar = 0
End Sub
Se tutta va bene, inserendo una
stringa di ricerca nella casella di testo
e cliccando sul pulsante MioPulsanteTrova,
ti trovera' la stringa da te immessa. Sui
successivi click, trovera' eventuali altre
ripetezioni della stringa.
ps
fammi sapere come va.