Avevo già postato questo stesso problema il 19/05/2014 con il titolo "DB Access che sembra chiuso...." ed avevo avuto una risposta solo da Gibra; purtroppo senza esito positivo.
Ora devo terminare un progetto in cui utilizzo le stesse procedure che allora mi avevano dato problemi.
Sto utilizzando un Modulo (bas - modReportToPDF) prodotto da 'Stephen Lebans - Email: Stephen@lebans.com - Web Site:www.lebans.com' che consente di convertire i Report di Access in PDF.
Queso modulo contiene la Function "ConvertReportToPDF" che bisogna necessariamente richiamare da una ulteriore Function con la quale si effettua una chiamata ad "access.application"; questa a sua volta apre il DB che contiene i Report da convertire in PDF.
Funziona tutto egregiamente, ma solo la prima volta: dalla seconda in poi la Function "ConvertReportToPDF" non viene eseguita e compare una finestra di messaggio (non mi pare sia una finestra di errore) con intestazione "MSAccess: 2486" che contiene il testo: "Impossibile eseguire l'azione adesso".
Devo aggiungere comunque che se c'è una qualsiasi finestra di Access aperta, anche se non contiene nessun DB aperto, la Function di cui sopra non viene eseguite nemmeno la prima volta.
L'impressione è che dopo l'apertura del DB da parte di access.application, questo non venga più chiuso nemmeno con "msAccess.CloseCurrentDatabase" e "Set msAccess = Nothing".
Posto di seguito la Function:
codice:
Function StampaReportInPDF()
On Error GoTo errore_StampaReportInPDF
Dim blRet As Boolean
Dim msAccess As Object
Screen.MousePointer = vbHourglass
Set msAccess = CreateObject("Access.Application")
msAccess.OpenCurrentDatabase filepath:=Percorso 'Il path del DB
blRet = ConvertReportToPDF(NomeReport, vbNullString, PathCompletoDelReport, False, False, 150, "", "", 0, 0, 0)
msAccess.CloseCurrentDatabase
Set msAccess = Nothing
If Not msAccess Is Nothing Then Set msAccess = Nothing
DoEvents
Screen.MousePointer = vbNormal
Exit Function
errore_StampaReportInPDF:
MsgBox "Errore nella Sub ''StampaReportInPDF'' del Modulo ''......''. " & Err.Number & " - " & Err.Description
End Function
Ho pensato che l'installazione di Access sul PC fosse corrotta e quindi l'ho disinstallato e reinstallato. Ho messo a posto il Registro di sistema (WISE care), ma non è cambiato nulla.
Potrei (!) reinstallare anche VB6, ma prima di farlo ho provato ad eseguire lo stesso Progetto da un diverso PC con un diverso SO ma il problema non cambia.
Sul Web non ho trovato molte informazioni riguardo a questo MSAccess: 2486. Qualcuno ci si è già scontrato?
L'ultimo pensiero che ho fatto, ma devo ancora verificarlo, è di vedere se dopo la prima chiamata a "ConvertReportToPDF" rimane un file.ldb aperto ad indicare che File.mdb non è chiuso e quindi provare a cancellarlo, se il sistema me lo consente.
Aggiungo comunque che la scappatoia l'ho trovata facendo eseguire tutta la procedura da un Progetto esterno richiamato da "ShellExecute" e che si chiude al termine (End) ma al costo di un certo appesantimento del Progetto.
Se qualcuno vuole il Modulo di conversione dovrebbe necessariamente richiederlo all'autore, ......
Grazie a chi vorrà darmi una mano.