Newsgroup: it.comp.appl.access
Titolo: Origine Controllo = Conteggio([......])

In una form a maschere continue che prende i record da  una qry mostro il n°
di  record visualizzati con una casella di testo con Origine Controllo
settata a
=Conteggio([IDOrdine])
Nella maschera sono possibili varie operazioni di filtro tramite un
controllo calendario, una serie di pulsanti di opzione ed una
combo.L'istruzione sopra enunciata con il controllo calendario ed i pulsanti
di opzione funziona mentre con la combo no cioè non aggiorna il n° dei
record anche forzando il refresh (l'ho inserita sul current della maschera).
La combo in questione lavora con la seguente istruzione SQL
SELECT DISTINCTROW qryStoricoOrdine.Materiale
FROM qryStoricoOrdine
GROUP BY qryStoricoOrdine.Materiale
ORDER BY qryStoricoOrdine.Materiale;
Il Group By serve in quanto se no la qryStoricoOrdine mi farebbe vedere
sulla combo ogni record riferito ad un materiale mentre a me serve solo il
nome.
e sul seguente evento
Sub cmbMateriali_AfterUpdate()
    Me.RecordsetClone.FindFirst "[Materiale] = '" & Me![cmbMateriali] & "'"
    Me.Bookmark = Me.RecordsetClone.Bookmark
End Sub
Ora mi chiedo ma l'istruzione =Conteggio([IDOrdine]) non mi dovrebbe fare il
conteggio secco dei record visualizzati nella maschera indipendentemente
dal tipo di filtro?
Oppure sbaglio a filtrare i record con la combo in questione?
SunRex

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

 restituirà il valore che ti aspetti.
Non uso Filter ma riassegno ogni volta il recorssource
P.Es. con il controllo calendario
Me.RecordSource = "SELECT * FROM qryStoricoOrdine WHERE  [DataOrdine] =#" &
datData & "#"
dove datData è la data selezionata sul calendario.


 dove datData è la data selezionata sul calendario.
Ed allora a fronte dell'evento "Dopo aggiornamento" della casella combinata
cmbMateriali, invece di quello indicato da te, genera il seguente codice
VBA:
Sub cmbMateriali_AfterUpdate()
Me.Filter = "[Materiale] = '" & Me![cmbMateriali] & "'"
Me.FilterOn = True
Me!ContaRecord.Requery
End Sub
dove ContaRecord è il nome della casella di testo non associata nella cui
origine controllo hai scritto:
=Conteggio([IDOrdine])
Ora il conteggio dovrebbe essere effettuato solamente sui record
visualizzati dalla maschera continua.


 ha scritto nel messaggio
news:lsshd.11327$Ni.4...@twister1.libero.it...

Funziona ma per usare anche il controllo calendario ed i pulsanti di opzione
devo se
ho filtrato già i record con la combo levare prima il filtro.
Per quanto riguarda la routine originaria della combo non ho capito una
cosa.
Tu dici che "NON filtri la  maschera ma ti posizioni sul record cercato"
però
io ho davanti un set di record e non uno solo.Cioè se seleziono sulla combo
che so Azotemia la maschera mi fa vedere che so 15 ordini corrispondenti
alle
varie date in cui sono stati effettuati.E' questo che non capisco se mi
fossi posizionato sul primo record
ne vedrei solo uno o no?
SunRex


 ne vedrei solo uno o no?
Nooooooooo.
Un posizionamento è un posizionamento e come sto cercando di spiegarti non
filtra assolutamente nulla, quindi visualizzerai lo stesso numero di record
che visualizzi prima della selezione con la casella cambinata.
Se invece adotti la mia soluzione visualizzerai solo i record selezionati
con la casella combinata.



[CUT]
