Scusa se rispondo solo ora. Non è una cosa di poco conto, anzi è un'anomalia molto insidiosa del controllo DE, sopratutto se si trattano dati numerici. Difatti si rischia di stampare dati non aggiornati ..., con tutte le conseguenze. Io dopo molti tentativi ho risolto in questo modo (sarebbe comunque opportuno predisporre due righe di codice per verificare se ciò che va in stampa corrisponde ai dati aggiornati):
codice:'Da inserire nel modulo del DE Private Sub DataEnvironment_Initialize() 'Si connette con stringa di connessione ed attiva la connessione: With DataEnvironment1.ConnectionE1 .ConnectionString = DataConnessione .Open End With End Sub Private Sub DataEnvironment_Terminate() 'Chiude la connessione ed azzera i riferimenti: With DataEnvironment1.ConnectionE1 .Close End With Unload Me End SubSpero che sia chiaro, come vedi nulla di eccezionale, solo qualche accorgimento.codice:' Da inserire nel modulo del DR 'Visualizza e stampa il report: Public Sub rptFormCF1_Load() On Error Resume Next Load DataEnvironment1 'Verifica e se del caso Apre ed aggiorna il recorset: With DataEnvironment1 If .rsCommandCF1.State = 0 Then .rsCommandCF1.Open .rsCommandCF1.MoveFirst '.rsCommandCF1.Update End If End With 'Imposta i margini del Report: With Me .Orientation = rptOrientLandscape .TopMargin = 100 .BottomMargin = 500 .LeftMargin = 400 .RightMargin = 400 .ReportWidth = 12400 'Imposta larghezza del Report: If Me.WindowState = vbNormal Then .Width = Screen.Width 'Imposta la larghezza del form. .Height = Screen.Height 'Imposta l'altezza del form. .Left = (Screen.Width - .Width) / 2 'Centra il form orizzontalmente. .Top = (Screen.Height - .Height) / 2 'Centra il form verticalmente. End If End With 'Visualizza il nome della Società nella pagina di stampa: RptCashFlowPP.Sections(1).Controls("Label2").Caption = FrmProva.TxtNomeCF1.Text 'Visualizza il nome del file nella pagina di stampa: RptCashFlowPP.Sections(1).Controls("Label3").Caption = FrmProva.CommonDialogCF2.FileTitle 'Visualizza il Reportper la stampa: 'DataEnvironment1.rsCommandCF1.Update RptCashFlowPP.Refresh RptCashFlowPP.Show vbModal 'Chiude il recorset ed annulla la connessione: With DataEnvironment1 If .rsCommandCF1.State <> 0 Then .rsCommandCF1.Close 'Set .rsCommandCF1.ActiveConnection = Nothing End If End With 'Rinvia all'evento Terminate del DataEnvironment per chiudere la connessione: Unload DataEnvironment1 End Sub![]()

Rispondi quotando