"L'operazione non è consentita se l'oggetto è chiuso" [VB6 E CR9]

lunedì 26 giugno 2006 - 11.40

shark986 Profilo | Junior Member

Ciao....
Per l'ennesima volta ho un piccolo problema coi report di CR9.... grrrr!!!!!

Non riesco a capire per quale motivo (sicuramente assurdo!) se eseguo il codice per la costruzione di un report in modalità passo-passo (o di debug.. come preferite!), non ho problemi, se invece avvio il programma e chiamo il report mi dà problemi col recordset!

L'errore è questo:
"Not supported.
Details: Error Code: 0x800a0e78
Source: ADODB.Recordset
Description: L'operazione non è consentita se l'oggetto è chiuso."

E questo è il codice che lo provoca:
Private Sub Form_Load() Dim strSQL As String Dim m_RS As ADODB.Recordset Set m_RS = New ADODB.Recordset strSQL = "SELECT * FROM riepilogo;" m_RS.Open strSQL, m_conn, 1, 3 Report.Database.SetDataSource m_RS CRViewer91.ReportSource = Report CRViewer91.EnableGroupTree = False CRViewer91.EnableNavigationControls = True Screen.MousePointer = vbDefault CRViewer91.ViewReport m_RS.Close End Sub

Premetto che il codice usato non è altro che codice copiato da altri report creati da me!
La differenza è che gli altri report hanno molto più codice: dopo che assegno al report il recordset sorgente, eseguo altre interrogazioni al db per settare alcune text.

Non posso credere che il problema derivi dal tempo che passa fra l'assegnazione della sorgente e la visualizzazione del report!.....
Voi che mi dite?! Spero qualcosa che mi aiuti a risolvere!!!
(se non fosse chiaro uso vb6)

Thanks....

freeteo Profilo | Guru

ciao,
l'errore parla chiaro,è 1 problema di ADO, ovvero non è riempito il recordset oppure "m_conn" che è la tua connessione non è valida.

Non è che percaso hai messo "on error resume next" e l'errore di connessione in qualche altra funzione non ti viene segnalato...
Controlla bene il codice, che non sia 1 problema di parametri di connessione...

ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

shark986 Profilo | Junior Member

>ciao,
>l'errore parla chiaro,è 1 problema di ADO, ovvero non è riempito
>il recordset oppure "m_conn" che è la tua connessione non è valida.

il recordset lo riempio correttamente e la connessione è la stessa che uso per tutte le altre operazioni sul db....

>Non è che percaso hai messo "on error resume next" e l'errore
>di connessione in qualche altra funzione non ti viene segnalato...

no il problema non è qui.... ho anche forzato l' on error goto 0 nel form load per una ulteriore conferma ma niente....

>Controlla bene il codice, che non sia 1 problema di parametri
>di connessione...

non credo.... come ti ho già detto la connessione è unica e la uso per il resto del prog.... e poi scusa.... perchè in fase di runtime mi dà questo problema e procedendo in modalità debug no?!?!?!?

grrrrrr!!!!!.....

mi sembra strano ma... che sia un problema legato al raggruppamento?...

grazie e.. a presto!!!

shark986 Profilo | Junior Member

Volevo avvisare che il problema l'ho risolto poi!

In pratica io
Report.SetDataSource recordset
lo faccio nel FormLoad del form che contiene il CRViewer.....
Alla fine dell'evento FormLoad chiudo il recordset e ho l'errore.....

Il problema l'ho risolto semplicemente chiudendo il recordset nell'evento
CRViewer91_DownloadFinished

Se non ho capito male questo evento si scatena quando lo scaricamento dei dati per comporre il report è terminato... quindi si può chiudere tranquillamente il recordset perchè la lettura dei dati da esso è terminata!

Spero tutto ciò possa essere d'aiuto... ciaooz!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5