MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    [Resolvido]Access para word em pasta especifica

    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Access para word em pasta especifica Empty [Resolvido]Access para word em pasta especifica

    Mensagem  toyebom 6/8/2018, 23:26

    Boas, já efectuei várias pesquisas mão não encontrei o que queria.
    Gerar um word.doc e guardá-lo automaticamente numa pasta especifica. Nem sempre é a mesma pasta e ás vezes a pasta não existe pelo que tem que se criar(aqui está o problema).

    Para pdf já consegui o problema é que necessito para word vistoque tenho um modelo pré definido.

    Em pdf utilizo:

    Código:
    Private Sub Comando851_Click()
    Dim strArquivo As String
    Dim strLocal As String
    Dim fso As Object
    Dim strDocumento As String
    Dim numCop As Integer
    Select Case MsgBox("DESEJA CRIAR PDF?", vbInformation + vbYesNoCancel, [CodBarra])
    Case vbYes
    'DoCmd.Save
    DoCmd.OpenReport "Despacho_4", acViewPreview, , "[CódigoDoProduto] = " & [CódigoDoProduto]
    DoCmd.Maximize
    strLocal = CurrentProject.Path & "\Inquéritos\" & Replace(Replace(Me!CodBarra, "/", "_"), ".", "-") & "\"
    strDocumento = "Despacho_4"
    Set fso = CreateObject("Scripting.FileSystemObject")
    If fso.folderexists(strLocal) Then ' verifica se ja existe a pasta e subpasta
    DoCmd.OutputTo acOutputReport, strDocumento, acFormatPDF, strLocal & strDocumento & " " & Replace(Me!CodBarra, "/", "_") & " _ " & Me![CódigoDoProduto] & ".pdf", False
    Else
    MkDir strLocal ' se nao existir cria
    DoCmd.OutputTo acOutputReport, strDocumento, acFormatPDF, strLocal & strDocumento & " " & Replace(Me!CodBarra, "/", "_") & " _ " & Me![CódigoDoProduto] & ".pdf", False
    End If
        numCop = InputBox("Informe a quantidade de cópias: ", "IMPRIMIR") 'Valor este que pode ser obtido por outro meios
        DoCmd.PrintOut acPrintAll, , , acHigh, numCop 'Linha simplificada para a impressão
    DoCmd.Close
    Case vbNo
    DoCmd.OpenReport "Despacho_4", acViewPreview, , "[CódigoDoProduto] = " & [CódigoDoProduto]
    DoCmd.Maximize
        numCop = InputBox("Informe a quantidade de cópias: ", "IMPRIMIR") 'Valor este que pode ser obtido por outro meios
        DoCmd.PrintOut acPrintAll, , , acHigh, numCop 'Linha simplificada para a impressão
    DoCmd.Close
    Case vbCancel
    End Select
    End Sub

    Em word utilizo:

    Código:
    Private Sub Comando906_Click()
    Dim wdApl As Object
    Set wdApl = CreateObject("Word.Application")
    wdApl.Documents.Open FileName:=CurrentProject.Path & "\FormuláriosAuto\Despacho.doc"
    With wdApl
    .ActiveDocument.Bookmarks("Texto2").Select: .Selection.text = Nz(Forms![Termo recebimento inq].Rótulo615) 'Processo
    .ActiveDocument.Bookmarks("Texto3").Select: .Selection.text = Nz(Forms![Termo recebimento inq].Texto741 & " " & Forms![Termo recebimento inq].Texto743 & " " & Forms![Termo recebimento inq].Texto744) 'Processo
    .ActiveDocument.Bookmarks("Texto9").Select: .Selection.text = Nz(Forms![Termo recebimento inq].Texto741 & " " & Forms![Termo recebimento inq].Texto743 & " " & Forms![Termo recebimento inq].Texto744) 'Processo
    .ActiveDocument.Bookmarks("Texto6").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[Caixa de combinação305])
    .ActiveDocument.Bookmarks("Texto10").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[Caixa de combinação304])
    .ActiveDocument.Bookmarks("Texto5").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[Caixa de combinação669])
    .ActiveDocument.Bookmarks("Texto13").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[Caixa de combinação665])
    .ActiveDocument.Bookmarks("Texto8").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[Texto18])
    .ActiveDocument.Bookmarks("Texto4").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[CP])
    .ActiveDocument.Bookmarks("Texto11").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[postocp])
    .ActiveDocument.Bookmarks("Texto12").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[CaixaCombinação907])
    .ActiveDocument.SaveAs CurrentProject.Path & "\Inquéritos\" & Nz(Replace(Me!Rótulo615, "/", "_")) & " - Distribuição" & ".doc"
    .ActiveDocument.Close
    .Quit
    End With
    Set wdApl = Nothing
    MsgBox "''Distribuição'' gerado em Word com sucesso na pasta ''Inquéritos''.", vbInformation, "Aviso"
    Me.Comando909.Visible = True
    End Sub

    mas queria adaptar o código que tenho para criar o pdf na parte:

    Código:
    strLocal = CurrentProject.Path & "\Inquéritos\" & Replace(Replace(Me!CodBarra, "/", "_"), ".", "-") & "\"
    strDocumento = "Despacho_4"

    ou seja

    .ActiveDocument.SaveAs CurrentProject.Path & "\Inquéritos\" & Nz(Replace(Me!Rótulo615, "/", "_")) & " - Distribuição" & ".doc"
    e
    DoCmd.OutputTo acOutputReport, strDocumento, acFormatPDF, strLocal & strDocumento & " " & Replace(Me!CodBarra, "/", "_") & " _ " & Me![CódigoDoProduto] & ".pdf", False
    Else
    MkDir strLocal ' se nao existir cria
    DoCmd.OutputTo acOutputReport, strDocumento, acFormatPDF, strLocal & strDocumento & " " & Replace(Me!CodBarra, "/", "_") & " _ " & Me![CódigoDoProduto] & ".pdf", False

    visto que apenas quero gerar o word não utilizo a função print


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Access para word em pasta especifica Empty Access para word em pasta especifica

    Mensagem  toyebom 6/8/2018, 23:33

    Melhor explicando:

    Abre um .doc, preenche e guarda na pasta que é criada com um dado de um campo, por exemplo no campo NIF(com o dado por exemplo 123A) cria a pasta CurrentProject.Path & "\Inquéritos\123A e dentro dessa pasta guarda o doc. com o nome Despacho.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    toyebom
    toyebom
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1128
    Registrado : 18/07/2012

    [Resolvido]Access para word em pasta especifica Empty Access para word em pasta especifica

    Mensagem  toyebom 7/8/2018, 00:12

    Ok após tentar consegui sozinho. Ficou:

    Código:
    Private Sub Comando906_Click()
    Dim wdApl As Object
    Set wdApl = CreateObject("Word.Application")
    wdApl.Documents.Open FileName:=CurrentProject.Path & "\FormuláriosAuto\Despacho.doc"
    With wdApl
    .ActiveDocument.Bookmarks("Texto2").Select: .Selection.text = Nz(Forms![Termo recebimento inq].Rótulo615) 'Processo
    .ActiveDocument.Bookmarks("Texto3").Select: .Selection.text = Nz(Forms![Termo recebimento inq].Texto741 & " " & Forms![Termo recebimento inq].Texto743 & " " & Forms![Termo recebimento inq].Texto744) 'Processo
    .ActiveDocument.Bookmarks("Texto9").Select: .Selection.text = Nz(Forms![Termo recebimento inq].Texto741 & " " & Forms![Termo recebimento inq].Texto743 & " " & Forms![Termo recebimento inq].Texto744) 'Processo
    .ActiveDocument.Bookmarks("Texto6").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[Caixa de combinação305])
    .ActiveDocument.Bookmarks("Texto10").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[Caixa de combinação304])
    .ActiveDocument.Bookmarks("Texto5").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[Caixa de combinação669])
    .ActiveDocument.Bookmarks("Texto13").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[Caixa de combinação665])
    .ActiveDocument.Bookmarks("Texto8").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[Texto18])
    .ActiveDocument.Bookmarks("Texto4").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[CP])
    .ActiveDocument.Bookmarks("Texto11").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[postocp])
    .ActiveDocument.Bookmarks("Texto12").Select: .Selection.text = Nz(Forms![Termo recebimento inq].[CaixaCombinação907])
    Dim fso As Object
    Dim strLocal As String
    Dim strDocumento As String
    strLocal = CurrentProject.Path & "\Inquéritos\" & Replace(Replace(Me!CodBarra, "/", "_"), ".", "-") & "\"
    strDocumento = "Despacho"
    Set fso = CreateObject("Scripting.FileSystemObject")
    If fso.folderexists(strLocal) Then ' verifica se ja existe a pasta e subpasta
    .ActiveDocument.SaveAs strLocal & strDocumento & " " & Replace(Me!CodBarra, "/", "_") & " _ " & " - Distribuição" & ".doc", False
    Else
    MkDir strLocal ' se nao existir cria
    .ActiveDocument.SaveAs strLocal & strDocumento & " " & Replace(Me!CodBarra, "/", "_") & " _ " & " - Distribuição" & ".doc", False
    End If
    .ActiveDocument.Close
    .Quit
    End With
    Set wdApl = Nothing
    MsgBox "''Distribuição'' gerado em Word com sucesso na pasta" & " " & Replace(Me!CodBarra, "/", "_") & " ", vbInformation, "Aviso"
    Me.Comando909.Visible = True
    End Sub


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.

    Conteúdo patrocinado


    [Resolvido]Access para word em pasta especifica Empty Re: [Resolvido]Access para word em pasta especifica

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/9/2024, 01:24