Newsgroup: it.comp.appl.access
Titolo: ricerca in sottomaschera

ciao a tutti
forse il mio quesito non sarà particolarmente stimolante, ma vi
assicuro di aver cercato e ricerca-to, anche sul sito comune, una
soluzione che facesse al caso mio prima di postare...
a parole la cosa è abbastanza semplice. ho una maschera collegata ad
una tabella di due campo (id e data), ed una sottomaschera in
visualizzazione maschera continua, che ha origine dati in una tabella
con id + altri campi. le due maschere sono in relazione uno a molti in
base a id, e tipo join "tutti i record della molti e solo quelli della
uno in cui i campi collegati sono uguali". nella sottoma-schera ho
messo il piè pagina giusto sotto i controlli disposti orizzontalmente
per visualizzare tutti i record della tabella collegata come fosse
appunto foglio dati, ma con una veste grafica più per-sonale.
all'interno della maschera principale ho messo una casella di testo
non associata e un pulsante comando per effettuare la ricerca.
la ricerca nella maschera principale, su id, va bene.
sulla sottomaschera no.
Ho provato a risolvere in questo modo
1) in vba ho impostato il fuoco sul controllo che contiene la
sottomaschera per poi lanciare il co-mando findrecord..... nisba
2) ho provato con una macro ... vai a controllo... trovarecord...
nisba
3) ho provato anche con il comando trova della barra degli strumenti
di access. Faccio la ricerca dopo aver impostato il fuoco sul
controllo associato al campo nel quale effettuare la ricerca.... se il
record cercato si trova tra quelli dell'id in quel momento
visualizzato, bene, senno ... nisba...
c'è qualche volenteroso che mi spiega che succede e come fare?
grazie

 ha scritto nel messaggio news:1182535231.4...@m36g2000hse.googlegroups.com...

[risposta]
Se inserivi anche l'esempio del codice che hai utilizzato lo potevamo correggere.
Per cercare nella sottomaschera puoi utilizzare il metodo Filter/FilterOn dell'oggetto Form.
Quindi per cercare nella sottomaschera basta che scrivi:
(se numerico)
Me!nomeSottomaschera.Form.Filter = "nomeCampoDaFiltrare = " & Me!nomeCasellaDiTesto
(se testuale)
Me!nomeSottomaschera.Form.Filter = "nomeCampoDaFiltrare = " & Chr$(34) & Me!nomeCasellaDiTesto & Chr$(34)
Me!nomeSottomaschera.Form.FilterOn = true
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
questo metodo mi fa risparmiare almeno 20 righe di codice.... ma mi da
gli stessi problemi di prima ovvero:
- la ricerca va a buon fine solo se nella casella di testo in base
alla quale applicare il filtro viene inserito il nome intero da
cercare (non parte di esso);
- ancora il problema che mi da utilizzando anche il comando trova (il
binocolo per intenderci) di access (a proposito è il 2002)...cioè se
con la maschera sono al primo record e il valore che cerco della
sottomaschera è in quel primo record, bene, sennò niente
se sei ancora in giro e ne hai voglia avrei anche un altro quesito,
questo si un pò più difficile.... è possibile estrarre il valore del
primo carattere (solo il primo) di un campo di testo? cioè metti che
io scriva in un campo la parola "campo", sarebbe possibile prelevare
solo la "c" iniziale della stringa?
grazie comunque
Peppe

 ha scritto nel messaggio news:1182612360.7...@w5g2000hsg.googlegroups.com...
---omissis---
questo metodo mi fa risparmiare almeno 20 righe di codice.... ma mi da
gli stessi problemi di prima ovvero:
- la ricerca va a buon fine solo se nella casella di testo in base
alla quale applicare il filtro viene inserito il nome intero da
cercare (non parte di esso);
- ancora il problema che mi da utilizzando anche il comando trova (il
binocolo per intenderci) di access (a proposito è il 2002)...cioè se
con la maschera sono al primo record e il valore che cerco della
sottomaschera è in quel primo record, bene, sennò niente
[risposta]
Per il filtro parziale devi utilizzare l'operatore Like:
Es.
Me!nomeSottomaschera.Form.Filter = "nomeCampo Like '*" & Me!nomeCaselladiTesto & "*'"
...
se sei ancora in giro e ne hai voglia avrei anche un altro quesito,
questo si un pò più difficile.... è possibile estrarre il valore del
primo carattere (solo il primo) di un campo di testo? cioè metti che
io scriva in un campo la parola "campo", sarebbe possibile prelevare
solo la "c" iniziale della stringa?
[risposta]
Ci sono le funzioni di manipolazione delle stringhe: Left/Right/Mid/...(vedi help)
Es.
Msgbox left("Sergio",1) '<-- restituisce la S
grazie comunque
Peppe
[risposta]
Ciao.
-- 
Sergio MAZZA