Newsgroup: it.comp.lang.visual-basic
Titolo: flexgrid non si aggiorna

Ciao raga
rieccomi con le mie rotture di scalole, ecco il mio problema:
MsFlexGrid collegata a oggeto Data a sua volta collegato a Tabella ACCESS
popolo il FlexGrid con una query sql come sotto riportato:
    Data1.RecordSource = SQL
    Data1.Refresh
    MSFlexGrid1.Refresh
Dove SQL è la variabile che contiene la mia stringa SQL.
Ecco il problema:
Quando carico la FlexGrid la prima volta nessun problema visualizzo tutti i
dati correttamente, ma se clicco su un bottone per un eventuale
aggiornamento, o cambio la query (clicckando sempre sul famoso bottone) la
flex grid non mi si aggiorna, ho cercato sui post passati ma niente che
risolvesse il mio problema...
Suggerimenti????
grazie come sempre e alla prox

> Suggerimenti????
se riesci non usare l'oggetto data ma fai tutto con il codice
per riempirti la griglia non assegnargli  il data ma riempial manualmente
prova prima comunque
 MSFlexGrid1.datasource = nothing
e poi gli riassegni il data
ciao Ilario

> >  MSFlexGrid1.datasource = nothing
manca  set
set MSFlexGrid1.datasource = nothing


avevo già provato ecco cosa restituisce:
Errore di run-time '91'
Variabile oggetto o variabile del blocco with non definita
e non capisco perchè mi da questo errore..Ovviamente evidenzia il "set
MSFlexGrid1.datasource = nothing"
sto diventando matto.....

ho provato il tuo codice e funziona perfettamente
mi sorge un dubbio non e' che magari sbagli la sql
sei sicuro che ti aggiorna il data
ciao Ilairo


            Set MSFlexGrid1.DataSource = Nothing
            Data1.DatabaseName = "miodb.mdb"
            Data1.UpdateControls
            SQL = "select * From mia_tabella;"
            Data1.RecordSource = SQL
            Data1.Refresh
            Me.MSFlexGrid1.ColWidth(0) = 970
            Me.MSFlexGrid1.ColWidth(1) = 450
            Set MSFlexGrid1.DataSource = Data1
            MSFlexGrid1.Refresh
a me non va!!!!!

ho inserito un data e collegato il db di prova direttamente nelle proprieta'
del data
ho inserito una msflexgri1e collegato direttamente nelle proprieta' della
griglia il data1
nel command 1
    Data1.RecordSource = "select * from grupe order by " & Text1.Text
    Data1.Refresh
    MSFlexGrid1.Refresh
e nella text1 inserisco il nome della colonna
e funziona
prova ad aprire un nuovo progetto
ciao ilario

ok, infatti avevo detto che al primo utilizzo va, ma se cambio query e
faccio:
 Data1.RecordSource = SQL     'SQL è la query
     Data1.Refresh
     MSFlexGrid1.Refresh
non mi aggiorna la flexgrid!!!!!!!!!!!

 a me non va!!!!!
nemmeno a me perche' e' troppo strano, devi scegliere, o scegli il bind
diretto e colleghi da proprieta' la msflexgrid1.datasource a data1 o lasci
perdere e passi al late binding .
Passi fatti :
Apro access, creo un db con 2 tabelle e le popolo con dei dati
Poi faccio una form con 2 bottoni , 1 flex e un data.  Clicco sulle
proprieta' della flex (datasource) e inserisco "Data1"
Ecco il codice essenziale che FUNZIONA :
Option Explicit
Dim sql As String
Private Sub Form_Load()
    Data1.DatabaseName = VB.App.Path & "\db2.mdb"
End Sub
Private Sub Command1_Click()
    sql = "select * From tabella1;"
    Data1.RecordSource = sql
    Data1.Refresh
End Sub
Private Sub Command2_Click()
    sql = "select * From tabella2;"
    Data1.RecordSource = sql
    Data1.Refresh
End Sub
Ora Clicca il tasto 1 e poi il 2 e vedi che funziona.
Il tuo codice non va perche' prima rendi a nothing il datasource e poi con
data1.updatecontrols cerchi di riabilitare una connessione che non c'e' ,
poi provi a settare il bind da codice... insomma na porcheria ^_^
Prova a dare una riorganizzata.
PS: il bind diretto dei controlli e' sconsigliato, con un ciclo for puoi
popolare la griglia in late bind e hai controllo sul tutto, compresa la
formattazione dei campi.
-- 
<Gigio2K>
--- 
http://www.g2kweb.it/gigio2k
 ---
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/