Domanda

Ho creato un rapporto nel rapporto MS Access e ho scritto del codice VBA per recuperare i dati e mostrare il rapporto in formato MS-Word. Durante la generazione del report in fase di runtime, tuttavia, il report mostra innanzitutto o lampeggia la vista di progettazione del report per alcuni secondi e il report verrà generato.

Vorrei trovare una soluzione per evitare questo lampeggiamento della vista di progettazione durante la generazione del rapporto. È possibile con questo codice MS-Access o VBA. ??

Sto pubblicando le righe che ho usato per chiamare il rapporto di accesso dal codice del modulo di accesso.

DoCmd.OpenReport prima! [Argomento], acPreview

questo genererà il rapporto ma la schermata di progettazione lampeggia per alcuni secondi durante l'esecuzione.

E non è stato scritto alcun codice VBA nel rapporto di accesso.

L'esecuzione effettiva è che ho preparato i dati in una tabella di accesso temporaneo e ho generato il rapporto dalla tabella.

Il problema qui è che, durante l'avvio del report in modalità anteprima, la schermata di progettazione del report mostra alcuni secondi. Questo sembra male dal lato degli utenti.

È stato utile?

Soluzione

Cosa succede se provi questo codice:

  Dim strReport As Report        
  strReport = rst!Argument
  If SysCmd(acSysCmdGetObjectState, acReport, strReport) Then
     DoCmd.Close acReport, strReport
  End If
  DoCmd.OpenReport strReport, acPreview

Ciò che fa quel codice è controllare se il rapporto è già aperto in qualsiasi vista e poi lo chiude, se lo è, quindi lo apre. Questo assicura che non sei in visualizzazione design con la finestra nascosta.

E il codice evita anche ogni possibile problema di riferimento ByRef che potrebbe essere associato al passaggio di un valore da un recordset al comando OpenReport.

Altri suggerimenti

Sembra che tu stia aprendo il report in vista di progettazione per modificare alcune proprietà. Potrebbe essere possibile evitarlo, ma è necessario pubblicare il codice che apre il rapporto per dirlo con certezza.

Come stai esportando il rapporto in MS-Word? Qual è il codice?

Hai provato la stessa cosa con un semplice report (con un'origine dati di tabella) invece di utilizzare il codice VBA? Forse il VBA sta impiegando così tanto tempo a funzionare da tenere aperto il Rapporto in modalità progettazione abbastanza a lungo da essere percepibile.

Ho la stessa cosa succedere quando chiamo un rapporto MS Access da un'applicazione VB6. La ragione per cui succede nel mio caso è perché ho un modulo impostato per apparire all'avvio. Se non hai selezionato un modulo di avvio, questo non dovrebbe diventare visibile, quindi non lampeggia.

Fammi sapere se questo aiuta.

Mike

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top