Newsgroup: it.comp.appl.access
Titolo: filtro su casella di riepilogo

Salve a tutto il Ng!
Ho questo problema:
ho una tabella ho diversi records che appartengono a proprietari diversi; il
campo Proprietario indica il codice dell'utente che ha generato il record.
In un form ho disegnato una casella di riepilogo che come sorgente dati ha
la query "qryTabella" che è la seguente: "SELECT campo1, campo2, campo3,
proprietario FROM Tabella".
All'apertura del form la lista, chiaramente, visualizza tutti i dati di
tutti gli utenti ma io vorrei solo quelli di un derminato utente. Infatti al
momento del login il richiedo username e password e posso memorizzarmi in
una variabile globale il codice dell'utente loggato.
Ma non voglio cose del tipo "SELECT campo1, campo2, campo3, proprietario
FROM Tabella WHERE proprietario = Forms!Anagrafica!txtCodiceUtente" dove
txtCodiceUtente è un TextBox nascosto nel form, oppure
"SELECT campo1, campo2, campo3, proprietario FROM Tabella WHERE proprietario
= RecuperaCodiceUtente()" dove RecuperaCodiceUtente() è una funzione
pubblica in un modulo.
Vorrei una cosa del tipo l'apertura di un form. Infatti con l'oggetto
Docmd.OpenForm "frmAnagrafica", , "Proprietario = " & glngCodiceUtente posso
a livello di codice applicare il filtro al momento dell'apertura e
visualizzare i record già filtrati, anche se la sorgente dati è sempre una
query del tipo "SELECT * FROM tabella" senza WHERE particolari. Purtroppo
non esiste una proprietà .Filter sulla casella di riepilogo, ne la
possibilità di passare come sorgente dati un oggetto Recordset già aperto e
filtrato (come sono abituato a fare in VB).
Qualcuno ha qualche idea??
Potrei anche aprirmi un recordset filtrato via codice ed impostare la
.rowsourcetype della casella di riepilogo come "elenco" e costruirmi
l'elenco passando uno ad uno i record del recordset appena aperto, ma avrei
problemi con i campi testo quando all'interno è memorizzato un ;.
Non voglio neanche utilizzare gli .ocx specifici di VB perchè non sono
"standard" Access.
Per ora la soluzione che ho adottato è recuperare la sintassi SQL con:
strSQL = CurrentDB.Querydefs("qryTabella").SQL
strSQL = strSQL & " WHERE proprietario = " & glngCodiceProprietario
lstElenco.RowSource = strSQL
Questo mi permette di cambiare da access la struttura della query ed
applicare via codice SOLO il filtro ma come soluzione mi fa abbastanza
schifetto...
Grazie per gli aiuti.

 
La risposta l'hai già data è che non sai qual'è.
Così come puoi passare una Stringa SQL per generare una QRY
puoi farlo per una COMBOBOX.
Me.TuaCombo.RowSource="SELECT campo1, campo2, campo3, proprietario
 FROM Tabella WHERE proprietario ='" & Forms!Anagrafica!txtCodiceUtente
& "'"
Il CODICE SQL perchè non ci hai pensato...????
Alessandro.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:c143db6a83b8670a07...@mygate.mailgate.org...


[CUT]
Io ho appena trovato una strada più semplice, passo ad una
FUNZIONE un Recordset che popola la COMBO o LIST, sfruttando
la poco conosciuta proprietà RowSourceType e impostando una
Funzione predefinita molto flessibile e comoda.
Vedi Help.


 ha scritto nel messaggio
news:5b5607f440edfa5d2c...@mygate.mailgate.org...


 
Non è così come dici, hai guardato l'HELP cosa dice a riguardo
delle Funzioni personalizzate e RowSourceType...??????????????
Imposti in RowSourceType="Pers_Fill" esempio.
Poi nel modulo di Maschera crei la FUNZIONE Pers_Fill(con i dovuti
parametri)
come indicato nell'Help, e io ho utilizzato una Matrice Static per
riempire l'Elenco ROW che automaticamente viene passato alla List o
Combo.
Soluzioni IDEALI cosa intendi...?????
Questo non è VB, quindi devi utilizzare quello che hai a disposizione,
potrei dirti che con C++ potrebbe essere ancora meaglio, ma a che serve
se uso ACCESS.!


 ha scritto nel messaggio
news:1f2b8352f4189f57ea...@mygate.mailgate.org...


 
Io ho fatto un Modulo di Classe che fa tutto e pare Funzionare
benone, devi scrivere alcune righe per instanziarlo.
Posso, se può servirti, inviarti un DEMO.
Ciao.
Alessandro


 ha scritto nel messaggio
news:4c1b4a2ae6c7926b0f...@mygate.mailgate.org...
