Newsgroup: it.comp.lang.visual-basic
Titolo: Requery su controllo Adodc

Un saluto a tutti i partecipanti al NG.
Ho un form associato ad un controllo Adodc. Vorrei eseguire un Requery in 
una routine, per aggiornarmi il Recordset con il comando :
Adodc1.Recordset.Requery
ma VB6 mi da un errore '91' variabile oggetto o variabile del blocco With 
non impostata.
Dove sta l'errore ?
Grazie per l'aiuto.
Ciao - Daniele

 Dove sta l'errore ?
Le cause possono essere 100.000
Se non posti il codice, sar� molto difficile individuare la causa!
-- 
Ciao Fede
By Chicco Production
http://bcp.freetools.it


Ciao Fede
In realt� l'errore si verifica anche su un pulsante con solamente questa 
istruzione senza nessun'altra riga di codice nella routine.
Ciao Daniele 

 istruzione senza nessun'altra riga di codice nella routine.
Comunque se vuoi un consiglio, lascia perdere i controlli Adodc,
ed effettua tutto via codice creando un riferimento alla libreria 
DAO360.dll.


 non impostata.
...
Non so quello che fai, e non credo di aver mai usato controlli Adodc, ma la 
descrizione di errore ti dice molto.
A naso... o Adodc1 e' nothing, o e' nothing l'oggetto Recordset di Adodc1.

 -- 
La tentazione di usare oggetti DAO � molto forte ma purtroppo nella stessa 
form sto usando un DataGrid che come datasource accetta solamente oggetti 
ADODB. So che ci sono altre Grid ma non le conosco e mi ci vorrebbe pi� 
tempo ad imparare ad usarle.
Grazie comunque.
Ciao Fede 


Ciao VBMizio
Se ho capito bene dovrei dichiarare una variabile a livello di modulo : dim 
rs as New ADODB.Recordset
e poi nella mia routine Set la variabile :
set rs = adodc1.Recordset ??
oppure ho capito male ?


 set rs = adodc1.Recordset ??
...
Forse mi sono spiegato male io.
come ti dicevo, non ho mai usato controlli Adodc, quindi ne so poco 
(preferisco usare Ado da codice); l'errore che ti da pero' segnala che c'e' 
un oggetto non impostato, e cioe' e' = Nothing
Questo si ha, nella piu' classica delle situazioni, quando ci dimentichiamo 
di fare il set, oppure quando si assegna ad un oggetto il risultato di una 
funzione, nel caso questo risultato sia nothing.
Per controllare come stanno le cose, prova a fare, in debug e prima di 
chiamare il requery, una cosa tipo..
Debug.Print (Adodc1.Recordset is Nothing)
Se ti risponde "Vero", sai dove andare a cercare.


In realt� io non do mai il Set ad Adodc in quanto l'oggetto � precaricato 
nella form e si setta con l'apertura della maschera senza alcun comando da 
codice. All'interno di altre routines mi carico delle variabili prendendole 
dal Adodc.Recordset senza settarlo e questo mi funziona quindi significa che 
l'oggetto Recordset � carico. Sono costretto ad usare Adodc perch� ho un 
malfunzionamento con un DataGrid presente nel form.
Conosci un p� il funzionamento del DataGrid ?
Ciao - Daniele

 Conosci un p� il funzionamento del DataGrid ?
...
Un po'.
cmq tieni conto che la DataGrid si usa tranquillamente senza Adodc, ma e' 
sufficiente (anzi, secondo me assolutamente preferibile) usare Ado senza 
controlli aggiuntivi :-)
 


Se riuscissi a risolvere il problema con il DataGrid che ho postato qualche 
giorno fa, avrei risolto tutti i miei problemi e getterei alle ortiche il 
controllo Adodc ... per semplicit� ti riporto il post precedente :
Ho una semplice maschera con un DataGrid associato ad un Recordset
dissociato con le routines sottostanti.
Non riesco a capire perch� dopo l'aggiornamento della colonna totale il
focus mi torna sempre alla prima cella della prima riga.
Ringrazio chi mi pu� suggerire la soluzione.
Ciao - Daniele
Dim rs As New ADODB.Recordset
-------------------------------------------------------
Private Sub DataGrid1_AfterColUpdate(ByVal ColIndex As Integer)
If ColIndex = 1 Then
    rs!totale = rs!pezzi * rs!prezzo
End If
End Sub
----------------------------------------------------------------------------
Private Sub Form_Load()
rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.Fields.Append "pezzi", adDouble
rs.Fields.Append "prezzo", adDouble
rs.Fields.Append "totale", adDouble
rs.Open
Set DataGrid1.DataSource = rs
End Sub
---------------------------------------------------------------------
Private Sub Form_Unload(Cancel As Integer)
rs.Close
End Sub
se mi puoi aiutare.....
Ciao - Daniele