Artigo: 124862 - Última revisão: quarta-feira, 11 de Outubro de 2006 - Revisão: 1.2

ACC: Enviar o registo actual para o Word com a automatização OLE

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Avançado: Requer conhecimentos avançados sobre codificação, interoperabilidade e multi-utilizador.

Expandir tudo | Reduzir tudo

Sumário

Este artigo descreve como pode intercalar o registo actual num objecto do Microsoft Access num documento no Microsoft Word versão 7.0 ou anterior e abra-a na pré-visualização.

Para obter informações sobre como intercalar o registo actual com um documento do Microsoft Word 97, consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
131583  (http://support.microsoft.com/kb/131583/EN-US/ ) ACC: Enviar o registo actual para Word 97 com automatização
Este artigo pressupõe que está familiarizado com o Visual Basic for Applications e criação de aplicações do Microsoft Access utilizando as ferramentas de programação fornecidas com o Microsoft Access. Para mais informações sobre o Visual Basic for Applications, consulte o manual "Criar aplicações com o Microsoft Access para Windows 95".

NOTA: Visual Basic for Applications (utilizado no Microsoft Access para Windows 95 versão 7.0) é designado por Basic do Access versão 2.0. Para mais informações sobre o Basic do Access, consulte o manual "Building Applications".

Mais Informação

Os seguintes passos demonstram como criar um documento do Microsoft Word e um formulário do Microsoft Access, em seguida, são utilizados para intercalar o registo actual do Microsoft Access no Microsoft Word:
  1. Iniciar o Microsoft Word e criar novo documento:
          First Last
          Address
          City, Region, PostalCode
    
          Dear Greeting,
    
          Northwind Traders would like to thank you for
          your employment during the past year. Below
          you will find your photo. If this is not your
          most current picture, please let us know.
    
          Photo
    
          Sincerely,
    
          Northwind Traders
    					
  2. Criar um marcador para a palavra "Nome". Para tal, seleccione a palavra "Nome", faça clique sobre marcador no menu Editar, escreva "Primeiro" (sem as aspas) na caixa Nome do marcador e, em seguida, clique na adicionar botão.
  3. Repita o passo 2 para os campos Apelido, endereço, cidade, região, código postal, saudação e fotografias.
  4. Guarde o documento como Olemerge.doc na pasta raiz (directório) da unidade C.
  5. Inicie o Microsoft Access e abra o exemplo da base de dados Adamastor.mdb (ou NWIND.MDB na versão 2.0).
  6. Abra o formulário Empregados na vista de estrutura.
  7. Na secção geral do módulo de formulário, declarar a variável global seguinte:
    Dim Word As Object
    					
  8. Adicionar um botão de comando ao formulário e defina a propriedade AoFazerClique do botão para o seguinte procedimento de evento.
    Na versão 7.0:
           Sub Command40_Click()
           On Error GoTo CatchBlanks
           Dim Word As Object ' Declare in the module to view the print
                              ' preview after the Sub ends
    
              DoCmd.GoToControl "Photo"
              DoCmd.DoMenuItem acFormBar, acEditMenu, acCopy, , acMenuVer70
              Set Word = CreateObject("Word.Basic")
              Word.FileOpen ("C:\OLEMERGE.DOC")
              Word.EditGoto "Last"
              Word.INSERT CStr(Forms![Employees]![LastName])
              Word.EditGoto "First"
              Word.INSERT CStr(Forms![Employees]![FirstName])
              Word.EditGoto "Address"
              Word.INSERT CStr(Forms![Employees]![Address])
              Word.EditGoto "City"
              Word.INSERT CStr(Forms![Employees]![City])
              Word.EditGoto "Region"
              Word.INSERT CStr(Forms![Employees]![Region])
              Word.EditGoto "PostalCode"
              Word.INSERT CStr(Forms![Employees]![PostalCode])
              Word.EditGoto "Greeting"
              Word.INSERT CStr(Forms![Employees]![FirstName])
              Word.EditGoto "Photo"
              Word.EditPaste
              'Word.FilePrint 0
              ' To send the record directly to the printer, unremark the line
              ' above, and remark the next two lines below.
              Word.appmaximize "",1
              Word.FilePrintPreview
              Word.AppActivate "Microsoft Word"
              Exit Sub
    
           CatchBlanks:
               If MsgBox("Error sending one field, it may be blank. Would _
                  you like to continue?", 52) = 6 Then
                  Resume Next
               Else
                  Exit Sub
               End If
    
          End Sub
    					
    Na versão 2.0:
    NOTA: No código de exemplo seguinte, um sublinhado (_) no final de uma linha é utilizado como um carácter de continuação de linha. Remova o carácter de sublinhado do final da linha quando recriar este código Basic do Access.
           Sub Button182_Click ()
              On Error GoTo CatchBlanks
              Dim Word As Object ' Declare in the module to view the print
                                 ' preview after the Sub ends
    
              DoCmd GoToControl "Photo"
              DoCmd DoMenuItem A_FORMBAR, A_EDIT, A_COPY
              Set Word = CreateObject("Word.Basic")
              Word.FileOpen ("C:\OLEMERGE.DOC")
              Word.EditGoto "Last"
              Word.Insert CStr(Forms![Employees]![Last Name])
              Word.EditGoto "First"
              Word.Insert CStr(Forms![Employees]![First Name])
              Word.EditGoto "Address"
              Word.Insert CStr(Forms![Employees]![Address])
              Word.EditGoto "City"
              Word.Insert CStr(Forms![Employees]![City])
              Word.EditGoto "Region"
              Word.Insert CStr(Forms![Employees]![Region])
              Word.EditGoto "PostalCode"
              Word.Insert CStr(Forms![Employees]![Postal Code])
              Word.EditGoto "Greeting"
              Word.Insert CStr(Forms![Employees]![Last Name])
              Word.EditGoto "Photo"
              Word.EditPaste
              ' Word.FilePrint 0, 0, "0", "", "", "", 0, "1", "", 0, 0, 1, ""
    
              ' NOTE: When sending the current record from Microsoft Access 2.0
              ' to Microsoft Word 95, replace the above line with the
              ' following line:
    
              ' Word.FilePrint 0
    
              ' To send the record directly to the printer, unremark one of the
              ' lines above, and remark the next two lines below.
    
              Word.appmaximize "",1
              Word.FilePrintPreview
              Word.AppActivate "Microsoft Word"
           Exit Sub
    
              CatchBlanks:
                 If MsgBox("Error sending one field, it may be blank. Would _
                 you like to continue?", 52) = 6 Then
                    Resume Next
                 Else
                    Exit Sub
                 End If
    
           End Sub
    					
  9. Guarde o formulário e, em seguida, visualizar o formulário na vista de formulário. Clique no novo botão de comando.

    Note que o registo actual é enviado para o Microsoft Word, intercalado no documento OLEMERGE e depois abrir na pré-visualização da impressão.

    Repare no formato de saída: muitos dos tipos de dados do Access são o resultado não formatado. (ou seja, moeda é enviada para o MS Word como um número geral) É necessário nestes casos para formatar os dados manualmente. O exemplo seguinte irá formatar um campo denominado [Preço] exportar como moeda:
    Word.Insert Cstr (Format(Forms![FormName]![Price], "Currency"))

A informação contida neste artigo aplica-se a:
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
Palavras-chave: 
kbmt kbhowto kbprogramming KB124862 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 124862  (http://support.microsoft.com/kb/124862/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.