Newsgroup: it.comp.appl.access
Titolo: errore 2046 su apertura report

Buongiorno, 
uso Access 2003 
ho automatizzato la stampa in pdf di un report atttraverso una routine su un pulsante, funziona ma alcune volte appare un errore di runtime 2046 "L'azione Aprireport non è disponibile". Ho letto in giro che è un bug di Access e la Microsoft propone una soluzione che ho provato ma che non risolve il problema nel mio caso. 
Sapete con la vostra esperienza se c'è soluzione? 
Vi ringrazio 
 
Remigio 


Uso il 2003 ma non mi e' mai capitato
Possiamo vedere il codice che va in errore?
 

 Possiamo vedere il codice che va in errore?
 
Ciao Roberto,
questo è il codice che ho messo in un modulo:
 
_____________________________
 
 
Option Compare Database
Option Explicit
 
' Add a reference to PDFCreator
 
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 
Private Const maxTime = 10    ' in seconds
Private Const sleepTime = 250 ' in milliseconds
 
Public Function Start()
 PrintRep "Report1"
End Function
 
Public Sub PrintRep(RepName As String)
 
    Dim PDFCreator1 As PDFCreator.clsPDFCreator
    Dim DefaultPrinter As String
    Dim OutputFilename As String
    Dim c As Long
 
 
    Set PDFCreator1 = New clsPDFCreator
    With PDFCreator1
      .cStart "/NoProcessingAtStartup"
      .cOption("UseAutosave") = 1
      .cOption("UseAutosaveDirectory") = 1
      .cOption("AutosaveDirectory") = "C:\puadata"
      .cOption("AutosaveFilename") = RepName
      .cOption("AutosaveFormat") = 0                            ' 0 = PDF
   DefaultPrinter = .cDefaultPrinter
      .cDefaultPrinter = "PDFCreator"
      .cClearCache
   DoCmd.OpenReport RepName, acViewNormal
      .cPrinterStop = False
    End With
 
    c = 0
 
    Do While (PDFCreator1.cOutputFilename = "") And (c < (maxTime * 1000 / sleepTime))
      c = c + 1
      Sleep 200
    Loop
 
    OutputFilename = PDFCreator1.cOutputFilename
 
    With PDFCreator1
      .cDefaultPrinter = DefaultPrinter
      Sleep 200
      .cClose
    End With
 
    Sleep 2000 ' Wait until PDFCreator is removed from memory
 
    ' If OutputFilename = "" Then
    '  MsgBox "Creating pdf file." & vbCrLf & vbCrLf & _
    '   "An error is occured: Time is up!", vbExclamation + vbSystemModal
    ' End If
 
 
    End Sub
______________________________
 
e questa è la riga che provoca l'errrore:
 
     DoCmd.OpenReport RepName, acViewNormal
 
Il fatto è che non sempre si verifica.
Ho provato a lasciare visibile la finestra del database (come consigliato in un workaround Microsoft) ma non cambia nulla.
Grazie e saluti
 
Remigio


Potresti provare a fare il pdf via routine di Lebans
Magari il Pdfcreator c'entra qualcosa
Almeno lo escludi completamente
 

 Almeno lo escludi completamente
 
Ciao Roberto,
guarda, io ho ancora tanto da imparare e tu sei sempre molto gentile nel rispondere alle mie domande.
E' da troppo tempo che  sto sbattendo contro questo problema e negli ultimi dieci minuti ho deciso di cambiare.
Ho tolto Office 2003 ed installato Office 2007 Pro che, tra l'altro, ha la funzione di stampa in pdf integrata.
Grazie di nuovo, cmq credo che scriverò ancora :-)
Ciao
 
Remigio