Newsgroup: it.comp.appl.access
Titolo: Intercettare richiesta di ordinamento in un controllo form

Ciao a tutti,
Ho la necessità di intercettare la richiesta di ordinamento sia crescente
che decrescente su di una casella di testo in una maschera.
Una volta intercettata dovrei fare in modo che l'ordinamento avvenga in base
ad un campo presente nella query ma che non posso far visualizzare sulla
maschera.
Qualcuna sa dirmi gentilmente come potrei fare?
Grazie e ciao,
Andrea
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Andrea
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Ciao e grazie per la risposta ma ho già impostato adeguatamente le proprietà
OrderBy e OrderByOn della maschera.
Quello che cerco di fare è di intercettare il tentativo di ordinamento
(Crescente o decrescente)che un utente può cercare di ottenere selezionando
la casella di testo nella maschera e cliccandovi sopra con il pulsante
destro del mouse.
Questo mi serve perchè la casella di testo contiene una numerazione
progressiva (Es. M1 - M2 - M10 - M15 etc.)sia letterale che numerica che
access non riesce ad ordinare adeguatamente.
Per ovviare a questo io ho creato un campo nella query "ValNum" che è uguale
a (Val(Right([NCampo];Len([NCampo])-1))) e questo mi crea un ordinamento
numerico che imposto già con OrderBy e OrderByOn.
Io vorrei che quando l'utente cerca di ordinare la casella di testo nella
maschera l'ordinamento avvenga invece come se la casella di testo fosse il
campo "ValNum".
Inoltre non posso far vedere il campo "ValNum" nella maschera e non posso
neanche bloccare la casella di testo perchè mi serve poterla filtrare.
Spero tu mi possa dare qualche dritta per risolvere questo problema.
Ciao e grazie,


 Ciao e grazie,



Ti ringrazio per la dritta ma c'è ancora una cosa che non ho capito e cioè
come devo fare per intercettare la richiesta di ordinamento che viene fatta
nella maschera già aperta con il pulsante destro del mouse sulla casella di
testo.
Su che evento devo intervenire con la routine?
Per intercettare i filtri ad esempio intervengo su Form_ApplyFilter ma sul
campo della casella di testo non esiste qualcosa tipo su
Campo_Apply_OrderBy.
Qual'è l'evento sul quale intervenire per poter annullare l'ordinamento del
Campo ed applicare invece il Me.OrderBy = Format(Mid([NCampo], 2),
"000000")ed il Me.OrderByOn = True ?
Grazie ancora e ciao,


 Andrea
Penso che la cosa più facile è generare il codice VBA a fronte dell'evento
"Su doppio clic" della casella di testo ed avviarlo appunto con un doppio
clic sulla detta casella di testo.
Se poi vuoi proprio usare il tasto destro sel mause, creati un menu di
scelta rapida personalizzato (per come crearlo leggi sull'help l'argomento
Creare un menu di scelta rapida personalizzato per il database corrente) ed
indica il nome di tale menu nella proprietà Barra menu scelta rapida della
casella di testo.



Se possibile preferivo utilizzare i menù di default visto che in caso di
trasferimento del Db su di altri Pc li devo ricreare ogni volta ( mi risulta
che access 2000 non mantenga i menù di scelta rapida in caso di
trasferimento del Db stesso su altre macchine ???).
Non esiste altra soluzione per cercare di mantenere le impostazioni standard
in modo che l'utente non noti differenze tra il menù della casella di testo
e quello degli altri campi ?
Non c'è proprio modo di intercettare gli ordinamenti come si fa ad esempio
con i filtri ?
Grazie per tutte le informazioni che mi stai gentilmente dando.
Ciao,


Ho provato ad utilizzare Me.OrderBy = Format(Mid([NMostre], 2), "000000")
etc. ("NCampo" si chiama sulla sia sulla form che sulla query "NMostre")ma
mi richiede l'immissione di parametri come mai? Forse perchè ho la maschera
settata a visualizzazione continua o sbaglio qualcosa ?


 Andrea
-- 


 Andrea
-- 



Ho fatto proprio ciò che mi hai detto ma continua a chiedermi "Immissione
valore parametro" "000001" non riesco a capire il perchè?
[NMostra] è proprio il nome del campo contenuto nella query "qryTblMostre" e
non il nome della casella di testo della form.
Mentre ho inserito
Me.OrederBy=Format(Mid([NMostre], 2), "000000")
Me.OrderByOn = True
su Form_Open della maschera stessa.
Non so proprio come fare?
Grazie comunque,


 Grazie comunque,



Ho scoperto l'arcano mistero le Virgolette "" senza le quali non funziona.
    Me.OrderBy = "Format(Mid([NMostre], 2), ""000000"")"
    Me.OrderByOn = True
Guardando ciò che mi scrivevi non ho proprio pensato a ste benedette
virgolette.
Ma tu riesci a farlo funzionare anche senza virgolette?
Comunque grazie tante dell'aiuto e della pazienza datami.


 Andrea
-- 
