TRABALHAR COM WORD, INSERINDO DADOS DO BD

EMANUEL 07/07/2005 07:10:05
#92562
Pessoal, bom dia!
Estou desenvolvendo um sistema para um imobiliaria, este cliente tem um modelo de contrato no word, dai para cada inquilino deve existir um contrato.
A ideia é fazer com que no momento da locação após informar os dados do inquilino.. valor.. etc... baseado neste contrato(principal) no word, seja gerado um novo arquivo do word com os dados que informei no momento do aluguel, sendo assim irá ficar um arquivo do word para cada inquilino.

alguem jha fez isso ou teria alguma outra ideia de como fazer?


obrigado,
Emanuel



(enunciado alterado por JEAN JEDSON)
JEAN.JEDSON 07/07/2005 07:42:20
#92564
Resposta escolhida
use o código abaixo, que é uma modificação do código disponibilizado pelo Macoratti:

Private Const SW_SHOWNORMAL = 1
Private Const SW_SHOWMINIMIZED = 2
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOW = 5
Private Const SW_MINIMIZE = 6
Private Const SW_SHOWMINNOACTIVE = 7
Private Const SW_SHOWNA = 8
Private Const SW_RESTORE = 9
Private Const SW_SHOWDEFAULT = 10

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub GeraWord(sModeloContrato As String, sNovoContrato As String, sProprietario As String, sNacionalidade As String, sProfissao As String, sEstadoCivil As String, sEndereco As String, sBairro As String, sCidade As String, sUF As String, sCPF_CNPJ As String, sRG_Inscrição As String)
'No seu Arquivo do WORD, use as variáveis abaixo, que serão substituidas pelos parà¢metros:
'@@Nome@@
'@@Nacionalidade@@
'@@Profissão@@
'@@EstadoCivil@@
'@@Endereço@@
'@@Bairro@@
'@@Cidade@@
'@@Estado@@
'@@CPF_CNPJ@@
'@@RG_Inscrição@@
On Error Resume Next
Dim ObjWord As New Word.Application
Me.MousePointer = 11
ObjWord.Visible = False
CopyFile sModeloContrato, sNovoContrato
ObjWord.Documents.Open (sNovoContrato)
AlteraWord "@@Nome@@", sProprietario, ObjWord
AlteraWord "@@Nacionalidade@@", sNacionalidade, ObjWord
AlteraWord "@@Profissão@@", sProfissao, ObjWord
AlteraWord "@@EstadoCivil@@", sEstadoCivil, ObjWord
AlteraWord "@@Endereço@@", sEndereco, ObjWord
AlteraWord "@@Bairro@@", sBairro, ObjWord
AlteraWord "@@Cidade@@", sCidade, ObjWord
AlteraWord "@@Estado@@", sUF, ObjWord
AlteraWord "@@CPF_CNPJ@@", sCPF_CNPJ, ObjWord
AlteraWord "@@RG_Inscrição@@", sRG_Inscrição, ObjWord
ObjWord.ActiveDocument.Save
ObjWord.Quit
Set ObjWord = Nothing
Me.MousePointer = 0
ShellExecute hwnd, vbNullString, sNovoContrato, vbNullString, vbNullString, SW_SHOW
End Sub

Private Sub AlteraWord(Header As String, Data As String, oWord As Object)
On Error Resume Next
With oWord.Selection.Find
.ClearFormatting
.Text = Header
.Execute Forward:=True
End With
Clipboard.Clear
Clipboard.SetText (Data)
oWord.Selection.Paste
Clipboard.Clear
End Sub
JEAN.JEDSON 07/07/2005 07:44:29
#92566
por sinal... seja mais sugestivo na chamada de seu tópico... estarei alterando o enunciado para facilitar outras respostas
Tópico encerrado , respostas não são mais permitidas