Newsgroup: it.comp.lang.visual-basic
Titolo: Problemi di refresh con DataGrid

Salve a tutti,
volevo sottoporvi uno strano comportamento di una data grid
E' collegata ad un Ado data control.
Carico sul data grid il contenuto di una tabella di un db Access. Ne
modifico alcuni campi, e cerco di aggiornare la tabella con le
seguenti istruzioni:
------
datPrimaryRS.Recordset.UpdateBatch adAffectAll
call myfunc1
call myfunc2
datPrimaryRS.Refresh
------
Ovviamente datprimaryRS e' il recordset associato al data grid. E il
datagrid e' associato all'ado data control.
Il comportamento che vorrei si realizzasse e' questo:
1) visualizzo la prima volta i dati sul datagrid
2) modifico dei campi del datagrid
3) lancio l'update da un apposito pulsante che mi deve aggiornare i
dati della tabella access corrispondente
4) lancio due mie funzioni (myfun1 e myfunc2) che devono lavorare sui
dati appena aggiornati e aggiornare nuovamente la stessa tabella con
valori da esse elaborati
5) voglio visualizzare nuovamente sul data grid i valori modificati
dalle mie due funzioni
Dov'e' il problema direte voi ? Semplicemente il comportamento del mio
data grid e' che dopo l'update da pulsante e il lancio delle mie due
funzioni, non vedo nulla di nuovo sul controllo (cioe' mi visualizza
vecchi record), ripremendo ancora il pulsante di aggiornamento mi
visualizza tutti i record modificati tranne l'ultimo e ripremendo
ancora infine vedo tutti i record che sono stati modificati. 
Cioe' per vedere la modifica a video correttamente devo premere altre
due volte il pulsante di aggiornamento oltre quello normale.
Come mai ?
Avrei veramente urgentemente bisogno che mi si aggiornasse
correttamente con gli ultimi dati.
Grazie a tutti
Turbina
P.S.: Posso visualizzare un campo definito come boolean con una check
box all'interno di un datagrid ?

 correttamente con gli ultimi dati.
L'unica cosa che mi viene in mente :
prova a cambiare la posizione del cursore da adUseCLient a adUseServer (se
non ricordo male)
--
Ciao
Franco

Se non ho capito male, a seguito di una modifica (cancellazione,
aggiornamento, inserimento) al recordset, non hai i valori aggiornati sulla
DATAGRID
In questi casi usavo
recordset.requery
dovrebbe funzionare anche per te
Ciao, Pascal ;)
tip: Evita di usare l'AdoDataControl. puoi usare direttamente i recordset
i.e.:
dim rst as adodb.recordset
rst.open strsql, conn,....
set datagrid1.datasource=rst



wrote:


 due volte il pulsante di aggiornamento oltre quello normale.
Idem.
Ho risolto (!!!) passando da DAO 3.6 a DAO 3.51
Provare per credere (a meno che adesso la SP5 non abbia risolto il problema,
io non l'ho ancora installata).
Ciao,
Carlo.


wrote:


 di DAO ?
Menů Progetto/Riferimenti ---> DAO...
Ciao,
Carlo.

"Turbina" ha scritto:


 aprivo normalmente con dao 3.6 (e' un access 2000).
Guarda, ti potrei suggerire di convertire da Access 2000 a 97 il database,
perché è quello che ho fatto io, però non vorrei che poi saltasse fuori un
altro problema e così via a catena (molto probabile).
Forse ti conviene riprendere il tuo progetto originale e cercare un'altra
soluzione (MSDE?)
Buona fortuna,
Carlo.


wrote:


 fare il refresh ?
Un normalissimo Refresh sul controllo data cui è connessa la DBGrid.
Attenzione: la modifica dei dati deve essere condotta con il recordset del
controllo data stesso, altrimenti il refresh ha i problemi che lamenti tu
(però per te è così, non è vero? Dai una controllatina, che non fa mai
male...)
Ciao,
Carlo.


wrote:


   grdDataGrid.Refresh
[...]
UpDateBatch? adAffectAll?
Ma allora usi ADO!
Installa l'ultimo MDAC disponibile (dovrebbe essere MDAC 2.6, ma io non lo
uso per ora quindi non sono sicuro): dovrebbe risolvere il problema.
Ciao,
Carlo.


wrote:


 Poi posto subito i risultati !! ;-)
Hai ragione, l'avevi specificato.
Chiedo scusa per aver avuto troppa fretta!...
Ciao,
Carlo.

Il tuo problema č dovuto alla lentezza di ADo ad aggiornare i dati, 
il metodo pių semplice č 1 volta savato i dati, prima del refresh, 
visualizzare un msgbox di avvenuto salvataggio.
Ciao
-- 
Posted from  [217.58.17.179] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

il metodo più semplice è 1 volta savato i dati, prima del refresh, 


 Ciao,
una curiosità: come hai fatto ad utilizzare la datagrid con DAO ?!? ;)))))
CIAO

 una curiosità: come hai fatto ad utilizzare la datagrid con DAO ?!? ;)))))
Non è la DBGrid6, ma la DBGrid5, fornita con VB5, che funziona SOLO con DAO.
La trovi anche sul CD del VB6, in:
(cd)\Common\Tools\VB\Controls\dbgrid32.ocx
Ciao,
Carlo.

 wrote:
