Newsgroup: it.comp.appl.access
Titolo: creare casella ricerca in una maschera

Ciao,
scusate, come creo, in una maschera,una casella di ricerca che mi trovi i
valori di uno o pi� campi (scelti da me)?
grazie...
scusate la banalit� della domanda
ciao!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ciao!
la maschera ha come origine record una query su tabella e criteri where 
basati sul valore dei controlli filtro nella maschera
ad ogni aggiornamento dei controlli filtro devi fare un requery della form
Antonio 

 Antonio
eh? non posso mettere un po di codice in una campo testo?


 ...
Non è chiaro cosa intendi con "scelti da me". Quando, dove...
In principio ci sono tanti metodi, p.e.
- puoi usare la creazione guidata per una casella combinata
- 
www.donkarl.com/it?FAQ4.4
- il punto 3.29 nella sezione Forms di 
http://www.sitocomune.com
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it


veramente in un campo testo il codice non ci sta per niente bene
magari del pepe, della maggiorana
la morte sua poi sarebbe salvia, dopo averlo spruzzato con abbondante burro 
fuso
ma il codice proprio no, non ce lo mettere ti prego...
ah, mi raccomando, vino rigorosamente rosso, non troppo tanninico!
Antonio 

 - il punto 3.29 nella sezione Forms di 
http://www.sitocomune.com
Provo a spiegarmi meglio.
campo1, campo2; campo3; campo4
  _________________
  |_Pippo__________|
quello che vorrei creare è una semplice box testo in cui vado a scrivere
"pippo" e mi farà vedere sulla maschera non tutti i record (1 alla volta)
ma solo quelli che contengono nei campi 1 e 2 il valore pippo.
non si tratta di una tendina per selezionare i valori ma una casella per
cercare i record che hanno quei valori già inseriti.
incollo di seguito quello che avevo scritto per openoffice/base
Sub COFcliente_cerca(oEv)
oModel = oEv.Source.Model
sTestoPerRicerca = oEv.Source.getAccessibleContext.Text
oForm = oModel.Parent
oForm.Filter = " ( LCASE(""Tabella completa"".""Cliente"") LIKE LCASE('%"
& sTestoPerRicerca & "%' ))"
oForm.reload()
End Sub
questa macro è associata alla casella di testo. e funzionare funziona


 che contengono nei campi 1 e 2 il valore pippo
Se invece intendi "nei campi 1 o 2" sostituisci "And" con "Or".



Oops, vedo solo adesso che hai usato % prima e dopo la parola  -->
Me.Filter = "[Campo1] Like " & Chr$(34) & "*" & Me!txtFiltro & "*" & 
Chr$(34)
o
Me.Filter = "[Campo1] Like '*" & Me!txtFiltro & "*'" & _
    " And [Campo2] Like '*" & Me!txtFiltro & "*'"
ecc.

 ecc.
che differenza c'è tra filtrare e cercare?
domani provo... speriamo!


 ...
Leggi i paragrafi su "Ricerca" e "Filtro" di quest'articolo:
http://office.microsoft.com/it-it/access-help/trovare-i-record-HA010115326.aspx


 ecc.
Ciao, ho provato ma non funziona... devo scrivere semplicemente nella riga
che c'è a fianco di "dopo aggiornamento"? o devo creare una macro? se si
come?
grazie


 macro? se si come?
Non si tratta di un macro ma di codice VBA. Il procedimento:
- posiziona il cursore nella riga della proprietà "Dopo aggiornamento"
  della casella di testo
- questa riga infatti è una casella combinata, dal suo elenco scegli
   [Routine evento]
- fai clic sul piccolo bottono con i tre punti a destra della riga
   che apre l'editore VBA
- nell'editore alla posizione del cursore inserisci il codice
- salva e chiudi l'editore VBA


Karl Donaubauer ha scritto:



Domani provo: se funzionerò ti nominerò mio guru personale...


 Domani provo: se funzionerò ti nominerò mio guru personale...
ciao ho provato ma non funziona...
semplicemente quando premo invio mi passa al record successivo ignorando
il filtro e senza dare errori...
(l'unica cosa strana è che nella versione per il filtro su due campi hai
inserito un "_" che mi viene riconosciuto come carattere non valido...)
tra l'altro questa ricerca mi trova solo "Pippo" o anche "pippo" "pip" e
"ppo"?
grazie
ciao


 "pip" e "ppo"?
Quale ricerca? Se vuoi sapere da me cosa ti troverà devi
prima dire cosa scrivi come parola di ricerca. :-)


 prima dire cosa scrivi come parola di ricerca. :-)
Private Sub txtFiltro_AfterUpdate()
Me.Filter = "[descrizione_articolo] Like " & Chr$(34) & "*" & Me!txtFiltro
& "*" & Chr$(34)
End Sub
la casella di filtro si chiama txtFiltro 
supponiamo di avere un record che abbia il valore Pippo in descrizione
articolo, questa routine(?) mi troverà anche "pippo", "pip" o "ippo"?
al momento banalmente mi ignora!
mi sa che non sono all'altezza... userò il banale pulsante di ricerca o i
comandi presenti nei menù...
per ripristinare la situazione devo andare nel VBA e eliminare la riga che
ho aggiunto?
grazie lo stesso!!!!!!!


 riga che ho aggiunto?
S�, se elimini tutte le righe che hai aggiunte � successo quasi niente. ;-)


 
Sì, se elimini tutte le righe che hai aggiunte è successo quasi niente. ;-)
provo a riformulare... fingiamo di avere un filtro funzionante e una
maschera che ha 3 record nel campo "nome"
Pippo
Samantha
Giuseppe
io scrivo nella casella filtro di cui sopra parte di uno dei 3 record
supponiamo "Sam". Il filtro mi restituisce Samantha?
idem per parte terminale (supponiamo "seppe") e/o ignora le
maiuscole/minuscole?
non sei tu che non capisci, sono io che non mi so spiegare.... sono da
formattare


 End Sub
vedo perché non succede niente.
Non hai scritto la seconda riga per attivare il filtro, cioč:
Private Sub txtFiltro_AfterUpdate()
Me.Filter = "[descrizione_articolo] Like " &  _
                    Chr$(34) & "*" & Me!txtFiltro & "*" & Chr$(34)
Me.FilterOn = True
End Sub


 End Sub
Visto che "mi sono stato spiegato"?
domani provo... oggi... poi ti dirň...
