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
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
> 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
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
> algio wrote:
> > scusate, come creo, in una maschera,una casella di ricerca che mi
> > trovi i valori di uno o più campi (scelti da me)?
> > ...
> 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
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
Sembra di essere un codice non per cercare ma per filtrare.
Diciamo che la tua casella di testo per inserire "Pippo" si chiama
"txtFiltro".
Poi in una maschera di Access puoi provare questo codice nell'evento
"dopo aggiornamento" della txtFiltro:
Me.Filter = "[Campo1] Like " & Chr$(34) & Me!txtFiltro & "*" & Chr$(34)
Me.FilterOn = True
o per due campi del tipo testo:
Me.Filter = "[Campo1] Like " & Chr$(34) & Me!txtFiltro & "*" & Chr$(34) & _
" And [Campo2] Like " & Chr$(34) & Me!txtFiltro & "*" & Chr$(34)
Me.FilterOn = True
Il Chr$(34) è solo una cautela se nei campi ci possono essere apostrofi.
Altrimenti basta:
Me.Filter = "[Campo1] Like '" & Me!txtFiltro & "*'" & _
" And [Campo2] Like '" & Me!txtFiltro & "*'"
Me.FilterOn = True
Ho usato l'operatore "And" perché hai scritto:
> 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
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
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
Di solito succede se si perde lo spazio prima del " _".
Uno spazio seguito del trattino basso è un'interruzione di riga
cioè segnala a VBA che il codice continua nella prossima riga.
Incolla tutto il codice che hai provato incluse le righe di dicchiarazione
dell'evento ecc. Forse si vede il problema.
> tra l'altro questa ricerca mi trova solo "Pippo" o anche "pippo"
> "pip" e "ppo"?
Quale ricerca? Se vuoi sapere da me cosa ti troverà devi
prima dire cosa scrivi come parola di ricerca. :-)
> > tra l'altro questa ricerca mi trova solo "Pippo" o anche "pippo"
> > "pip" e "ppo"?
> Quale ricerca? Se vuoi sapere da me cosa ti troverà devi
> 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!!!!!!!
Hmm, ripeti la tua domanda di prima e continuo a non capirti.
Secondo me la situazione e domanda dovrebb'essere inversa.
Per� puo essere un mio problema di lingua.
Forse qualcun altro ti capisce e interviene.
> 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?
S�, se elimini tutte le righe che hai aggiunte � successo quasi niente. ;-)
> algio wrote:
> > ...
>> Hmm, ripeti la tua domanda di prima e continuo a non capirti.
> Secondo me la situazione e domanda dovrebb'essere inversa.
> Però puo essere un mio problema di lingua.
> Forse qualcun altro ti capisce e interviene.
>
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
Sě.
> idem per parte terminale (supponiamo "seppe") e/o ignora le
> maiuscole/minuscole?
Sě.
Adesso, riguardando il tuo
> Private Sub txtFiltro_AfterUpdate()
> Me.Filter = "[descrizione_articolo] Like " & Chr$(34) & "*" &
> Me!txtFiltro & "*" & Chr$(34)
> 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
> Sě.
> Sě.
> Adesso, riguardando il tuo
> Private Sub txtFiltro_AfterUpdate()
> Me.FilterOn = True
> End Sub
Visto che "mi sono stato spiegato"?
domani provo... oggi... poi ti dirň...