Como fazer para recuperar os dados Access de um cliente, alunos, funcionários, etc. e editar esses dados dentro de documento previamente elaborado, por exemplo um contrato? Veja como fazer nesse passo-a-passo.
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.
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:
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/
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
Ilustração 1 - Exemplo obtido do banco de dados NorthWind do Access.
2° Passo: O contrato ou o documento que receberá os dados da tabela Access
Ilustração 2 O contrato modelo que será usado na mala direta.
3° Passo: No Word ative as barras de ferramentas necessárias para a mala direta:
Ilustração 3 - Ativando a barra de ferramentas "Mala Direta" do Word
4° Passo: Abrindo a fonte de dados:
Ilustração 4 Clique no botão "Abrir fonte de dados"
Ilustração 5 Selecione o base de dados. No nosso exemplo "Maladireta.Mdb"
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.
Ilustração 6 - Inserindo campos da tabela Cliente no contrato padrão.
*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".
*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).
Ilustração 7 - O contrato padrão já com os dados editados.
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:
Ilustração 8 - Preparando uma consulta do tipo "Criação de tabelas" no Access. Esta tabela irá conter somente um registro.
A partir do contrato padrão, mesclar com os dados da tabela (ou da consulta) e salvar um novo arquivo do Word (doc).
Ilustração 9 - A mesclagem para um novo documento permite que o novo contrato seja tratado e salvo isoladamente, permanecendo o contrato padrão pronto para novos contratos.
Ilustração 10 Está aí o contrato mesclado e pronto para ser salvo com um novo nome (ex.: código do cliente_contrato - use a opção Salvar do Word), impresso, assinado e arquivado na pasta do cliente.
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:
Veja o código no comando “Contrato”:
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
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
A dica: Não use espaços e nem caracteres especiais para nome de pastas e arquivos. Ex. C:\Mala
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.
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/