Muitas vezes o usuário precisa elaborar um contrato para um cliente qualquer cujo cadastro tenha sido feito em tabelas Access. Nesse artigo mostraremos no passo-a-passo, como o Word, interagindo com o Access, recupera os dados do cliente e os insere num contrato padrão. Para esses exemplos usamos o Office 2003. Esse procedimento irá exigir um conhecimento mínimo de Word do usuário.
1° Passo: Cadastrando o cliente
2° Passo: O contrato ou o documento que receberá os dados da tabela Access
3° Passo: No Word ative as barras de ferramentas necessárias para a mala direta:
4° Passo: Abrindo a fonte de dados:
5° Passo: Inserindo campos de mesclagem:
Clique antes no texto do Word exatamente no local da inserção do campo. Repita esta operação para todos os campos a serem inseridos.
*Obs.: Apenas se tiver algum problema na hora de mesclar a data (como o mês vindo antes do dia, por exemplo) faça o seguinte: na referência ao campo do Access mude o formato da data. Ex.: data_inicio \"DD/MM/YY".
Todos os campos de mesclagem foram inseridos:
6° Passo: Exibindo os dados mesclados:
Repare que foram mesclados todos os clientes da tabela. A paginação pode ser obtida nos botões de navegação (idênticos aos do Access – veja na barra de ferramentas Mala Direta).
7° Passo: Colocando cliente como foco:
Até aqui conseguimos mesclar em contrato todos os clientes da tabela. Mas vamos supor que você queira o contrato somente para o cliente em foco na tela do Access: prepare uma consulta
criação de tabela cujo critério seja o código do cliente atual e volte ao 4° passo. Veja o exemplo:
A partir do contrato padrão, mesclar com os dados da tabela (ou da consulta) e salvar um novo arquivo do Word (doc).
8° Passo: Comandos:
Todos esses passos serão executados uma única vez e não precisarão mais ser repetidos. A partir de agora criaremos um botão de comando na tela do cliente que irá automatizar boa parte do processo:
Private Sub Contrato_Click()
On Error GoTo Err_Contrato_Click
DoCmd.SetWarnings False
Dim stDocName As String
stDocName = "qryCliente_Atual"
DoCmd.OpenQuery stDocName, acNormal, acEdit
DoCmd.SetWarnings True
Dim stAppNameDOC As String
stAppNameDOC = "WinWord.exe" & " " & "C:\MalaDireta\ContratoPadrao.doc"
Call Shell(stAppNameDOC, 1)
Exit_Contrato_Click:
Exit Sub
Err_Contrato_Click:
MsgBox Err.Description
Resume Exit_Contrato_Click
End Sub
Direta\Contrato Padrão.doc. Apesar do Word aceitar esses formatos, na automação o mesmo não abre o arquivo com espaços no nome e caracteres especiais. Ao invés disso use: C:\MalaDireta\ContratoPadrao.doc.
Conclusões:
Concordo que é um pouco trabalhoso, exige algum conhecimento de Word e de Access, mas o resultado compensa porque, como citado no começo: imagine elaborar 600 contratos escolares no início da temporada, ou mesmo a todo momento cadastrar e contratar um novo cliente.
Na barra de ferramentas “Mala Direta” do Word existem ainda inúmeras facilidades a serem exploradas de acordo com a sua necessidade.
No Access é possível também mandar um formulário do tipo “folha de dados”, inteiro para
dentro do Word (com o recurso copiar e colar), também um campo moeda escrito por extenso, enfim, também na interação Access/Word querer é poder.
Fonte: http://www.ativoaccess.com.br/
