Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263

    [VB.NET] Stampare Report Access in PDF senza avere nè Access nè Adobe Acrobat

    Parto da lontano nel tentativo di essere chiaro.
    Qualche anno fa, in VB6, avevo realizzato una procedura che, fra le altre cose, stampava in PDF i report di Access 2000. Per fare ciò, visto che Access 2000 non stampa in PDF, ho fatto ricorso ad una procedura di un certo Stephen Lebans, che consentiva appunto di fare quanto sopra. Ovviamente questa procedura era stata scritta per Access 2000/2003 e non può funzionare con versioni più recenti. Però era molto comoda, perché consentiva di aggiungerla nell'installer di VB6 insieme ai File MDB di Access 2000 (anche senza Access installato). Quindi era possibile distribuire il pacchetto completo senza ulteriori acquisti di licenze.
    Oggi sto utilizzando VB .NET e mi ritrovo a dover ricostruire quella vecchia procedura. Ovviamente, se devo utilizzarla all'interno della struttura in cui opero, possedendo licenze multiple di Access 2007 e di Adobe Acrobat 9, il problema non si pone. Se però dovessi (come dovrò) distribuirla anche a collaboratori esterni, quindi di altre Strutture, non posso imporre l'acquisto di questi due Software (magari in versioni più attuali e costose).
    Quello che vorrei sapere quindi, è se esistono procedure specifiche per stampare in PDF un qualsiasi Report di Access (2007 in questo caso), senza installare Access ovviamente, dal momento che in esso i Report sono già suscettibili di essere stampati in PDF, ma soprattutto senza installare Adobe Acrobat 9 o oltre, che mi pare essere la vera discriminante.
    Per esempio, può bastare l'installazione di PDFCreator? e se sì, cosa si deve settare in VB .NET per fare in modo che i due Software "si parlino"?
    In alternativa (ma mi obbligherebbe a riscrivere tutti i Report ed a implementarli con dati di Access), VB .NET ha una gestione Report comparabile a quella di Access?
    Aspetto suggerimenti.
    Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    La questione è più semplice di quello che pensi.

    Va bene PDF Creator come altre stampanti virtuali di PDF gratuite.

    Basta selezionare, in fase di stampa, la stampante PDF installata e basta.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263
    Quindi, se ho capito bene, basta che sia installato ad esempio PDFCreator e che nel codice di Access io richiami la Macro "StampaPDF" che contiene questo codice:

    codice:
        DoCmd.OutputTo acOutputReport, "NomeReport", acFormatPDF, ,

    In questo modo quando lancio da VB .NET

    codice:
    oAccess.DoCmd.RunMacro("StampaPDF")

    dovrebbe aprirsi la richiesta di selezionare la stampante?

    Appena ho un attimo, provo.

  4. #4
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263
    Quote Originariamente inviata da oregon Visualizza il messaggio
    La questione è più semplice di quello che pensi.

    Va bene PDF Creator come altre stampanti virtuali di PDF gratuite.

    Basta selezionare, in fase di stampa, la stampante PDF installata e basta.
    Ho fatto quanto segue:
    S.O. in Virtuale - Windows 7 con PDF Creator, NET Framework 4.7 e con Runtime di Access 2007 ma SENZA Access 2007
    Ho lanciato l'eseguibile di uno Script che su Windows 10 funziona perfettamente, ma specifico che questo script si connette al DB su un Server di rete (S:\).
    Anche su Wimdows 7 l'eseguibile funziona però quando lancio la stampa (non una stampa in PDF, una stampa standard) ottengo l'errore in allegato.

    Cosa ho sbagliato, e cosa dovrei fare?
    Molte grazie.
    Immagini allegate Immagini allegate

  5. #5
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263
    Up?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ma tu nel codice tenti di aprire Access?

    In quale linea si ferma l'esecuzione?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ma tu nel codice tenti di aprire Access?

    In quale linea si ferma l'esecuzione?
    No, io non tento di aprire Access; io lancio solo la stampa di un Report, così:

    codice:
    DoCmd.OpenReport "NomeReport", acViewNormal
    
    "in questo modo:"
    
    oAccess.DoCmd.RunMacro("StampaPDF")

    Non avendo installato Visual Studio su Windows 7, non so in quale linea si fermi, ho fatto il test utilizzando direttamente l'eseguibile proprio per vedere se funziona.
    Appena ho un momento installo Visual Studio e verifico.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Come no !

    oAccess

    cosa è ??
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263
    Quote Originariamente inviata da oregon Visualizza il messaggio

    oAccess

    cosa è ??
    codice:
                    Dim oAccess As Microsoft.Office.Interop.Access.Application
                    oAccess = New Microsoft.Office.Interop.Access.Application
                    oAccess.OpenCurrentDatabase(filepath:=DB_Locale, Exclusive:=False)
                    oAccess.DoCmd.RunMacro("StampaPDF")
                    oAccess.Application.CloseCurrentDatabase()
                    oAccess.Quit()

  10. #10
    quindi apri Access come applicazione, non come db --> Access (come applicazione) deve essere presente

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.