Newsgroup: it.comp.appl.access
Titolo: filtro in base a categoria merceologica che non mi funziona

ciao a tutti,
ho la seguente procedura su cui ho smanettato per un bel po senza ottenere
tutti i risultati voluti:
'***   catcorrente, sotcorrente sono lo stato attuale della categoria prima
di applicare il filtro
'***   servono per ripristinare lo stato precedente in caso di nessun record
trovato
'***************************************************************************
************************
'***   VaiCodice, VaiDescrizione, VaiPrezzo sono dei pulsanti che mi
posizionano nella categoria
'***   corrente e mi trovano il record con la descrizione cercata
permettendomi di andare avanti e a ritroso
'***************************************************************************
************************
Private Sub Comando52_Click()
DoCmd.SetWarnings False
Me.VaiCodice.Visible = False
Me.Vaidescrizione.Visible = True
Me.VaiPrezzo.Visible = False
Me.CercaCategoria = Null
Me.CercaSottoCategoria = Null
codcod = InputBox("Descrizione da cercare intera o in parte." & Chr(13) &
"Lasciare vuoto per tutti gli articoli." & Chr(13) & "Premere OK per
confermare.", "Cerca codice")
Me.CercaDES = codcod
Me.Requery
If Me.Recordset.RecordCount = 0 Then
'** RIPRISTINA LO STATO PRECEDENTE IN CASO CHE LA DESCRIZIONE NN ESISTE
'** E AVVISA CON UN MESSAGGIO
'**************************NON FUNZIONA**********************************
Me.CercaDES = Null
Me.CercaCategoria = Null
Me.CercaSottoCategoria = Null
Me.CercaCategoria = catcorrente
Me.CercaSottoCategoria = sotcorrente
Me.Recordset.findfirst "[Descrizione]='" & descorrente & "'"
xx = MsgBox("Nessun record trovato con la descrizione richiesta!!",
vbOKOnly)
End If
DoCmd.SetWarnings True
End Sub
In questa procedura, dovrei tonare allo stato precedente nel caso la ricerca
non vada a buon fine
come posso corregerla in modo che funzioni? cosě com'č se cerco una
descrizione inesistente
va in debug e si blocca.
soluzioni??

 soluzioni??
Secondo me per gestire in modo corretto la ricerca devi utilizzare i
Bookmark.
In più c'è da distinguere che come hai inserito l'InputBox non andrà mai la
ricerca della parte Parziale.
Prova così:
Dim strInCod as string
strInCod=InputBox("Quello che vuoi","CErca") & "*"
Me.RecordsetClone.FindFirst "[Descrizione]=" & chr(13) & strInCod & chr(13)
If err=0 then me.bookmark=Me.recordsetClone.Bookmark
L'ho buttata giù senza provarla ma dovrebbe andare, sostituisci il tutto
alla
tua routine, se trova qualche cosa allora si sposta altrimenti no....!
Ho inserito l'"*"  dopo InputBox per permettere anche le ricerche con parti
parziali.
Ciao.
@Alex.

 ha scritto nel messaggio
news:bqijv4$e1o$1...@lacerta.tiscalinet.it...

ho dimenticato in effetti di dire che il textbox cercacades ha come origine
un campo di una query che  praticamente mi cerca "*" & [descreizione] & "*"
(codcod va a finire in questa textbox e dopo il requery la ricerca viene
effettivamente fatta) e funziona alla grande.
quello che voglio è che mi deve gestire il caso in cui la descrizione non
esiste e quindi poter tornare allo stato precedente. tutto il resto (ricerca
intera o parziale) funziona bene.
grazie
Nicola


Anche se hai dimenticato funziona ugualmente, io però ti consiglierei
di strutturarlo come suggerito ed eliminare la Qry, puoi gestire il tutto
sfruttando la proprietà Filter della Form....!
Me.FilterOn=True
Me.Filter="[....criterio di prima] = "......!
In ogni caso va anche con la QRY, togli dopo l'InputBox l'"*"
Ciao.
@Alex.


con il tuo esempio funziona anche se ci sono pià articoli che corrispondono
alla descrizione cercata o si posiziona sul primo e basta?
Nicola

 ha scritto nel messaggio
news:dV5zb.141591$hV.51...@news2.tin.it...

Certo se vuoi filtrare devi usare Filter....!
Ciao.
@Alex.

 Certo se vuoi filtrare devi usare Filter....!
quindi la sub diventa
Dim strInCod as string
strInCod=InputBox("Quello che vuoi","CErca") & "*"
Me.RecordsetClone.FindFirst "[Descrizione]=" & chr(13) & strInCod & chr(13)
If err=0 then me.bookmark=Me.recordsetClone.Bookmark
e i filtri dove li metto?
scusami ma sono poco pratico di vb e per fare la mia procedura ha provato e
riprovato x 2 settimane su una tua stessa routine consigliatami qualche mese
fa e l'ho ridotta all'osso.
i bookmark che sarebbero e a che servono?
Nicola

 ha scritto nel messaggio
news:Qm6zb.141801$hV.51...@news2.tin.it...

Diventa:
Dim strInCod as string
strInCod=InputBox("Quello che vuoi","CErca") & "*"
Me.FilterOn=True
Me.Filter="[Descrizione]=" & chr(13) & strInCod & chr(13)
Questo Filtra al posto della QUERY.....!
Se dai un'occhiata agli esempi dell'HELP c'è tutto.....!!!
Ciao.
@Alex.