Newsgroup: it.comp.lang.visual-basic
Titolo: <no subject>

Ciao a tutti.
Vi sottopongo un problema: spero che a qualcuno di voi sia già capitato, lo 
abbia risolto e mi possa dare una mano.
PROBLEMA: ho un form che contiene un DBGRID collegato ad un controllo DATA. 
Questo controllo DATA punta ad una tabella contenuta in un archivio (MDB) 
Access 2000. Fin qui tutto okay. Il grid mi visualizza correttamente tutti i 
records, tra l'altro anche molto velocemente.
MA.... c'è un MA.
Per alcune opzioni di programma, io DEVO obbligatoriamente FILTRARE i record 
da visualizzare nella griglia (in almeno 2 modi diversi: 1°) per giorno 
della settimana - 2°)per ora del giorno) e SENZA uscire dal form (se no mi 
farebbe casino).
Ho provato con il meccanismo del settaggio di un filtro, e funziona anche 
correttamente, nel senso che i records me li filtra esattamente come li 
volevo ed il RECORDCOUNT mi restituisce il valore atteso, ma la cosa riesco 
a farla solo nel codice, NON sul controllo DATA che è quello a cui il GRID è 
collegato.
Come faccio a collegare un GRID ad una tabella FILTRATA? O meglio, come 
faccio di volta in volta a filtrare i records da visualizzare nel grid senza 
uscire dal form ??
Tutti i consigli saranno BENVENUTISSIMI. Grazie ! Sir Joe
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at 
http://www.hotmail.com
.
-- 
Posted from [151.33.178.4] by way of 
f4.law12.hotmail.com
 [64.4.19.4] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:F4JWEsBk31TZ1...@hotmail.com...

Hai provato ad inserire la query di filtro nella proprietà RecordSource del
controllo Data? Da codice a run-time potresti scrivere SELECT ... FROM
TABELLA WHERE condizioni di filtro in RecordSource e poi fare un bel refresh
dell'oggetto Data. Funzionera?

 ha scritto

sir joe
intanto: per favore, metti un subject ragionevole. chi e' di corsa
rischia di non vederlo..
poi, se ho capito.
ho una tabella ark, cui ho collegato un datacontrol "dbark"
per un'esigenza tipo la tua ho messo un combo con due query gia' pronte:
(form_load)
    cboSql.AddItem _
        "select * from ark where isnull(ark.from) and isnull(
ark.to
)
order by subject, date, time"
    cboSql.AddItem _
        "select * from ark where isnull(ark.time) order by subject,
date"
il testo di ogni record sta in un richtextbox (sotto: rtf).
ho messo di fianco al combo un cmd per cui se seleziono una parte del
rtf mi prepara gia' la query e la piazza nel combo. ovviamente poi posso
anche modificarla direttamente nel combo:
Private Sub cmdSqlEmpty_Click()
    If cboSql = "" Then
        If RTF.SelLength = 0 Then
            cboSql = "select * from ark where text like " _
                & Chr(39) & "* *" & Chr(39) & _
                " order by date, time, firm"
        Else
            cboSql = "select * from ark where text like " _
                & Chr(39) & "*" & RTF.SelText & "*" & Chr(39) & _
                " order by date, time, firm"
        End If
    Else
        cboSql = ""
    End If
End Sub
un altro cmd esegue la query che sta nel combo. questa e' la parte
importante:
Private Sub cmdSqlExec_Click()
    On Error GoTo errman
    If cboSql = "" Then Exit Sub
' normalmente l'archivio e' visualizzato come tabella indicizzata
' con gli indici elencati in un altrocombo
' ma come dynaset a selezionare un indice
' mi piazzerebbe un errore, quindi:
    cboIndex.Enabled = False
    dbArk.RecordsetType = 1
    dbArk.RecordSource = cboSql
    dbArk.Refresh
    DBG.ReBind ' <--- dbgrid : va ricollegata
End Sub
quando ho finito di fare query, torno a visualizzarmi la tabella
inidicizzata, ricollegandole il controllo data:
Private Sub cmdDBall_Click() ' <--- Db-All, non D-Ball :)
    cboIndex.Enabled = True
    Set MyRSX = MyDBX.OpenRecordset("ark")
    MyRSX.Index = cboIndex
    Set dbArk.Recordset = MyRSX
End Sub
ciao, a.