Pulsante Stampa unione

di il
24 risposte

Pulsante Stampa unione

Buongiorno vorrei creare un pulsante che mi apra direttamente la creazione guidata della stampa unione.
Ho trovato queste due righe su interent

Dim word As Object
Dim doc As Object

Set word = CreateObject("Word.Application")
 word.Visible = True
 Set doc = word.Documents.Open("C:\Users\Mafra8\Desktop\Nuova cartella\layout 9 immagini.docx")
Con queste righe mi apre soltato il file senza la creazione guidata del unione del file, come posso fare per aprire con un pulsante la creazione guidata delle stampa unione?? Grazie in anticipo

24 Risposte

  • Re: Pulsante Stampa unione

    Hai provato a registrare in WORD la macro e guardare che codice viene Generato...?
  • Re: Pulsante Stampa unione

    @Alex ha scritto:


    Hai provato a registrare in WORD la macro e guardare che codice viene Generato...?
    Si, Ma non riesco a capire granchè
      ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
        ActiveDocument.MailMerge.OpenDataSource Name:= _
            "C:\Users\Mafra8\Desktop\PROGETTO\Progetto_Backup.accdb", _
            ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
            AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
            WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
            Format:=wdOpenFormatAuto, Connection:= _
            "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users\Mafra8\Desktop\PROGETTO\Progetto_Backup.accdb;Mode=Read;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=6;Jet OLEDB:Dat"
            , SQLStatement:="SELECT * FROM `Articoli`", SQLStatement1:="", SubType:= _
            wdMergeSubTypeAccess
        ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
        ActiveDocument.MailMerge.DataSource.ActiveRecord = wdPreviousRecord
     
  • Re: Pulsante Stampa unione

    Purtroppo non ci si improvvisa mai... e per fare le cose serve sempre avere una conoscenza minima.
    Per spiegarci, tu nel codice del 1° post apri dal VBA di Access un oggetto Document che chiami [Doc].
    Il codice invece che hai postato sopra è il VBA di Word che, come vedi usa Metodi e proprietà Membri dell'Oggetto [ActiveDocument].
    Ora tu che relazione vedi tra [Doc] ed [ActiveDocument]...?
    Se inizi a comprendere come muoverti in modo consapevole... magari fai un passo avanti, altrimenti no.
  • Re: Pulsante Stampa unione

    @Alex ha scritto:


    Purtroppo non ci si improvvisa mai... e per fare le cose serve sempre avere una conoscenza minima.
    Per spiegarci, tu nel codice del 1° post apri dal VBA di Access un oggetto Document che chiami [Doc].
    Il codice invece che hai postato sopra è il VBA di Word che, come vedi usa Metodi e proprietà Membri dell'Oggetto [ActiveDocument].
    Ora tu che relazione vedi tra [Doc] ed [ActiveDocument]...?
    Se inizi a comprendere come muoverti in modo consapevole... magari fai un passo avanti, altrimenti no.
    Allora io ho utilizzato una macro di word come ho visto su un tutorial.
    ho registrato la macro su word ma ogni volta che cliccavo sul pulsante di access mi apriva il file senza eseguire la macro di word(cioè la creazione guidata del unione del file) , il codice che ho postato sopra è l'istruzione della macro di word. pensavo volessi l'istruzione della macro di word .
    Comunque ho risolto in questa maniera:
    
    Dim Applicazione, Percorso As String
        
        Percorso = "C:\Users\Mafra8\Desktop\Nuova cartella\Documento1.docx"
    
        Applicazione = "C:\WINDOWS\explorer.exe " & Percorso
        
        Call Shell(Applicazione, 1)
     
    Grazie mille comunque
  • Re: Pulsante Stampa unione

    Ricorda di dichiarare le variabili sempre esplicitamente così
    Dim Applicazione As String, Percorso As String
  • Re: Pulsante Stampa unione

    Mafra8 ha scritto:


    ....
    Allora io ho utilizzato una macro di word come ho visto su un tutorial.
    ho registrato la macro su word ma ogni volta che cliccavo sul pulsante di access mi apriva il file senza eseguire la macro di word(cioè la creazione guidata del unione del file) , il codice che ho postato sopra è l'istruzione della macro di word. pensavo volessi l'istruzione della macro di word .
    Comunque ho risolto in questa maniera:
    
    Dim Applicazione, Percorso As String
        
        Percorso = "C:\Users\Mafra8\Desktop\Nuova cartella\Documento1.docx"
    
        Applicazione = "C:\WINDOWS\explorer.exe " & Percorso
        
        Call Shell(Applicazione, 1)
     
    Grazie mille comunque
    Questo codice è tecnicamente una cosa da non fare..., purtroppo però capisco che perde un po il senso parlare di tecnica, quindi non lo consiglierei a nessuno ma se ti soddisfa va bene.
  • Re: Pulsante Stampa unione

    Perchè questo codice non vabene?? Purtroppo sono un autodidatta che sta cercando d'imparare.. Prova a spiegarti chissà potrei capirci qualcosa.
  • Re: Pulsante Stampa unione

    Se l'intento è solo aprire il DOCX usa il Metodo FollowHyperlink di Access.
    https://docs.microsoft.com/en-us/office/vba/api/access.application.followhyperlink
  • Re: Pulsante Stampa unione

    Grazie mille, ho un altra domanda,
    io ho una maschera tabulare e alla fine di ogni record il pulsante della stampa unione è possibile aprire direttamente il file word del record corrispondente al pulsante??
  • Re: Pulsante Stampa unione

    Sì, vale sempre la soluzione Application.FollowHyperlink.
  • Re: Pulsante Stampa unione

    OsvaldoLaviosa ha scritto:


    Sì, vale sempre la soluzione Application.FollowHyperlink.
    Sub CallGetUserAddress()
        If GetUserAddress = True Then
            MsgBox "Successfully followed hyperlink."
        Else
            MsgBox "Could not follow hyperlink."
        End If
    End Sub
    Function GetUserAddress() As Boolean
        Dim strInput As String
     
        On Error GoTo Error_GetUserAddress
        strInput = InputBox("Inserisci Percorso file ")
        Application.FollowHyperlink strInput, , True
        GetUserAddress = True
     
    Exit_GetUserAddress:
        Exit Function
     
    Error_GetUserAddress:
        MsgBox Err & ": " & Err.Description
        GetUserAddress = False
        Resume Exit_GetUserAddress
    End Function
    Private Sub Comando287_Click()
    Call GetUserAddress
    End Sub
    
    Ho utilizzato Application.FollowHyperlink in questa maniera vabene? però ci mette un pò per aprire il file è possibile accorciare i tempi?? è possibile farlo senza inserire il percorso del file?
  • Re: Pulsante Stampa unione

    Mafra8 ha scritto:


    Ho utilizzato Application.FollowHyperlink in questa maniera vabene?
    Sì.

    Mafra8 ha scritto:


    però ci mette un pò per aprire il file è possibile accorciare i tempi??
    …(credo) una volta @Alex disse che FollowHyperlink equivale a effettuare il doppio-clic sul file stesso...proprio come se lo volessi aprire.

    Mafra8 ha scritto:


    è possibile farlo senza inserire il percorso del file?
    No. FollowHyperlink sembra proprio significare "segui il percorso"...e poi proprio il primo argomento è il "path" corrispondente.
  • Re: Pulsante Stampa unione

    Mafra8 ha scritto:


    ....
    Ho utilizzato Application.FollowHyperlink in questa maniera vabene? però ci mette un pò per aprire il file è possibile accorciare i tempi??
    Se lo apri a mano da Windows quanto impiega...?

    Mafra8 ha scritto:


    ..è possibile farlo senza inserire il percorso del file?
    Questa è una domanda a trabocchetto...? Siamo su scherzi a parte...?
  • Re: Pulsante Stampa unione

    @Alex ha scritto:


    Mafra8 ha scritto:


    ....
    Ho utilizzato Application.FollowHyperlink in questa maniera vabene? però ci mette un pò per aprire il file è possibile accorciare i tempi??
    Se lo apri a mano da Windows quanto impiega...?

    Mafra8 ha scritto:


    ..è possibile farlo senza inserire il percorso del file?
    Questa è una domanda a trabocchetto...? Siamo su scherzi a parte...?
    Mi sono spiegato male intendevo un altro metodo per aprire il file oltre Application.FollowHyperlink
    Perchè ci mette tipo 1 minuto per aprire il file a mano ci metto di meno.
Devi accedere o registrarti per scrivere nel forum
24 risposte