+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: Stampare doc Word con preferenze di stampa da Access

  1. #1
    follegot non è in linea Novello
    Post
    35

    Stampare doc Word con preferenze di stampa da Access

    Ciao a tutti.
    Tempo fa ho ottenuto supporto dal forum per mandare in stampa un documento Excel, facendo click su un pulsante in una maschera di Access. Questo era il codice:
    codice:
    Private Sub Comando110_Click()
    Dim xlApp, xlBook As Object
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Open("MioFile.xlsx")
        xlBook.Sheets(1).PrintOut Copies:=10
        xlBook.Close SaveChanges:=False
        xlApp.Quit
        Set xlBook = Nothing
        Set xlApp = Nothing
            End Sub
    Ora mi trovo sostanzialmente a dover eseguire la stessa operazione mandando in stampa un documento di Word. Provo ad adattare il codice nel seguente modo:
    codice:
    Private Sub Comando111_Click()
    Dim xlApp, xlBook As Object
        Set xlApp = CreateObject("Word.Application")
        Set xlBook = xlApp.Workbooks.Open("MioFile.docx")
        xlBook.Sheets(1).PrintOut Copies:=20
        xlBook.Close SaveChanges:=False
        xlApp.Quit
        Set xlBook = Nothing
        Set xlApp = Nothing
            End Sub
    Ma ottengo un messaggio di errore. Evidentemente ci deve essere dell'altro; dov'è che sbaglio?
    Grazie se potrete aiutarmi.
    Ultima modifica di follegot; 15-05-2019 15:24 

  2. #2
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Luogo
    Conversano
    Post
    2,907
    Credo che xlBook.Sheets sia un concetto strettamente legato a Excel che non trova riscontro in Word. È su quella riga che ti dà errore?
    Ditemi i campi di tutte le vostre tabelle.

  3. #3
    Phil_cattivocarattere non è in linea Scribacchino
    Luogo
    Verona-Mantova
    Post
    1,644
    Quote Originariamente inviato da follegot Visualizza il messaggio
    Ma ottengo un messaggio di errore. Evidentemente ci deve essere dell'altro; dov'è che sbaglio?
    Sbagli dove viene segnalato l'errore e per il motivo descritto dall'errore (posso solo immaginare qual è visto che non lo hai precisato)
    Workbooks e Sheets non fanno parte del modello ad oggetti di Word.
    Usa l'earlybinding in prima battuta e aggiungi ai riferimenti la libreria di word; l'intellisense, il visualizzatore oggetti e la guida in linea e/o la documentazione di Microsoft sono lì per colmare i tuoi vuoti.

  4. #4
    follegot non è in linea Novello
    Post
    35
    Grazie per la pronta risposta.
    Il debug evidenzia questo errore:
    Set xlBook = xlApp.Workbooks.Open("MioFile2.docx") con la dicitura "Errore di runtime 438: proprietà o metodo non supportati dall'oggetto"

    Ho anche provato con una macro, con la speranza di convertirla in codice (per capirlo), ma se scelgo "stampa oggetto" non ho la possibilità di impostare preferenze di stampa, e se scelgo solo "stampa" ottengo la stampa della maschere del DB.

  5. #5
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    15,981
    Intanto stai facendo le cose a "scimmietta" senza nemmeno aver capito cosa stai facendo... tant'è che operi su Oggetti di EXCEL come logica di COPIA/INCOLLA di codice per te OSCURO.

    Ti invito a ragionare sulle cose....

    Questo banalmente è il CODICE BASE per aprire e stampare:
    codice:
    Dim objWord  As Object
    Set objWord = CreateObject(“Word.Application”)
    Set objDoc = objWord.Documents.Open(“C:\NomeDocumento.docx”)
    objWord.PrintOut ' Verifica il Metodo Printout come Parametri...
    objWord.Quit
    Set objWord=nothing
    Devi leggere però bene questo da applicare poi a Printout:
    https://docs.microsoft.com/en-us/off...ument.printout
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  6. #6
    follegot non è in linea Novello
    Post
    35
    Hai ragione Alex, è proprio vero. Opero scimiettando il codice OSCURO nella speranza di venirne fuori da solo. A volte ci riesco, a volte no. Metto mano a queste cose una, forse due volte l'anno e quando lo faccio non ricordo come ero arrivato alle conclusioni precedenti. Voi siete attivi costantemente su questo argomento, che diventa di vostra sempre maggiore padronanza, forse come per noi profani il nostro lavoro.
    Grazie infinite per le tue dritte che definisci banali (per me non lo sono per niente). Domani mi rimetto sotto di nuovo, confidando in un buon esito.
    Grazie di nuovo a tutti, anche per la tirata d'orecchi.

  7. #7
    follegot non è in linea Novello
    Post
    35
    Di nuovo ciao a tutti.
    Vorrei chiedere, a chi ne ha facoltà di intervento, la chiusura di questo thread, come "irrisolto", oppure come "risolto" ma con sistemi estranei al thread stesso. Rinuncia, abbandono, ritiro, forfait, usate pure il termine che preferite.
    A volte la resa sembra essere , dopo tutto, una soluzione dignitosa. Mi sono reso conto, infatti, che il tempo a mia disposizione non sarebbe bastato per fare mio il codice necessario alla soluzione del problema, così, come successo altre volte, ho dovuto fare di necessità virtù e ripiegare su un sistema che, basandosi sulle mie minime competenze in merito, mi ha consentito di ottenere lo stesso risultato, aggirando il problema.
    Ringrazio chi è intervenuto al thread e mi scuso se la cosa si è tradotta in una perdita di tempo.
    Spero di avere maggior fortuna in altre occasioni.
    Saluti a tutti.

  8. #8
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    15,981
    Non preoccuparti, il 3D in realtà tecnicamente è risolto, diciamo che chi ha bisogno e ci si vuole dedicare la mia risposta rappresenta la soluzione chiara, per te che hai optato per strade differenti non c'è problema, è giusto che ognuno riconosca i propri limiti e cerchi soluzioni alternative.
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  9. #9
    L'avatar di muttley005
    muttley005 non è in linea Scribacchino
    Post
    1,900
    generalizzando ad un qualsiasi file se non erro si può usare questo codice
    codice:
    ShellExecute hWnd, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd
    'ad esempio
    ShellExecute 0&, "print", "C:\miofile.pdf", vbnullstring, vbnullstring, 0 '(0->hide)

  10. #10
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    15,981
    Quote Originariamente inviato da muttley005 Visualizza il messaggio
    generalizzando ad un qualsiasi file se non erro si può usare questo codice
    codice:
    ShellExecute hWnd, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd
    'ad esempio
    ShellExecute 0&, "print", "C:\miofile.pdf", vbnullstring, vbnullstring, 0 '(0->hide)
    Non puoi definire il N° di Copie in questo modo come invece era richiesto.
    Quindi, parlando tecnicamente, se devi stampare 10 compie dovresti fare un Cilco, ma, se il file è ingombrante puo creare problemi essendo un processo ASINCRONO.
    Per questo motivo quando si usa questo metodo per PIU' stampe, si dovrebbe aprire un Processo ed attenderne la fine prima di passare al successivo... rendendo quindi il tutto SINCRONO.
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi