> Ok, anch'io avrei risposto cosi' perche' il Filter non lo uso mai
> Vorrei pero' capire se sto Filter c'ha la sua ragione d'esistere oppure
> (come le macro) anche se non lo consideriamo viviamo bene lo stesso
> E quindi la domanda e': supponendo di inserire i criteri di selezione
> nella nostra RecordSource, il Filter a che potrebbe servire?
> Voglio dire, se gia' col RecordSource si possono fare tutte le selezioni
> possibili, e pure piu' veloci, che ce sta' a ffa' il Filter ?
Su questo argomento si fece svariati anni fa una discussione abbastanza animata...
Considerando di avere un BE costituito da un RDBMS, a suo tempo era SQL_SERVER, la proprietà Filter sembra venga interpretata dal Driver SQL in modo intelligente se interpretabile lato SERVER, e restituisce solo i records coernti con il criterio, cosa che un po contrasta conquanto dice Simone.
Ora a suo tempo, mi pare fosse Giorgio ad aver verificato con gli strumenti di Managment di SQL_SERVER che effettivamente fosse così, ovvio che la scrittura e di conseguenza la risoluzione del Predicato è fondamentale, ma questo lo è anche nel caso si lavori sul RecordSource.
Se infatti si scrive una cosa simile:
SELECT * FROM T1 WHERE Id=Forms!NomeForm!Id
è evidente che puoi gestirla tramite Recordsource ma l'effetto finale è che il SERVER ti sputa tutta la tabella in locale e poi JET applica la WHERE CONDITION.
Da quanto ricordo, purtroppo però ho solo un ricordo, applicando la proprietà FILTER in modo Risolvibile lato server, quindi non :
Id=Forms!NomeForm!Id ---- ma Id=275, all'applicazione del nuovo Filter il RS finale è solo il Filtrato.
Servirebbe in effetti fare una verifica con SQL_SERVER MANAGMENT che se non ricordo male rende possibile controllare l'efficacia dell'interrogazione SQL, come viene risolto il predicato e quanti Records vengono restituiti lato SERVER, questo darebbe la chiara percezione della reale funzionalità del metodo.
@Alex