ETIQUETAS EM WORD
Pessoal tenho o seguinte código para imprimir etiquetas em word, ele funciona, mas manual. Gostava de saber como poder completar a string para ser tudo automatico para o cliente. Aqui está o código:
----------------------------------------------------
Podem testar, ao executar ele vai pedir informação do tipo, password da base de dados, vai pedir para confirmar a origem dos dados e qual a ligação a fazer, eu queria que tudo isto fosse automático. O problema falta por completar melhor estas linhas de código:
sDBPath = App.Path & "\base de dados\bd.mdb"
.OpenDataSource Name:=sDBPath, SQLStatement:="SELECT * FROM tbl_socios"
Quem poder ajudar, agradecia, é urgente.
Obrigada
Public Sub etiquetas()
Dim oApp As Word.Application
Dim oDoc As Word.Document
'Inicia um novo documento Word
Set oApp = CreateObject("Word.Application")
Set oDoc = oApp.Documents.Add
With oDoc.MailMerge
'Inclui os campos de mesclagens temporarios
'Usamos os campos da tabela socios do banco de dados bd.mdb
With .Fields
.Add oApp.Selection.Range, "nome"
oApp.Selection.TypeParagraph
.Add oApp.Selection.Range, "morada"
oApp.Selection.TypeParagraph
.Add oApp.Selection.Range, "codpostal"
End With
Dim oAutoText As Word.AutoTextEntry
Set oAutoText = oApp.NormalTemplate.AutoTextEntries.Add("MinhasEtiquetas", oDoc.Content)
'os campos de mesclagens serão excluidos pois a entrada - AutoText foi gerada
oDoc.Content.Delete
'Define a mesclagens para etiquetas e usa um banco de dados
'como fonte de dados , voce pode usar um arquivo texto|
.MainDocumentType = wdMailingLabels
'Informe aqui o caminho da fonte de dados
'.OpenDataSource Name:="C: este\etiqueta.txt" --> Voce pode usar um arquivo texto
sDBPath = App.Path & "\base de dados\bd.mdb"
.OpenDataSource Name:=sDBPath, SQLStatement:="SELECT * FROM tbl_socios"
'Cria um novo documento para as etiquetas usando a entrada AutoText
'5160 é o numero da etiqueta a usada
oApp.MailingLabel.CreateNewDocument Name:="5160", Address:="", _
AutoText:="MinhasEtiquetas", LaserTray:=wdPrinterManualFeed
'Executa a mesclagem para gerar as etiquetas
.Destination = wdSendToNewDocument
.Execute
'Excluir a entrada AutoText inserida
oAutoText.Delete
End With
'fecha o documento original e torna o word visivel e exibe as etiquetas
oDoc.Close False
oApp.Visible = True
' Salva o modelo quando o usuario sair do word
oApp.NormalTemplate.Saved = True
End Sub
----------------------------------------------------
Podem testar, ao executar ele vai pedir informação do tipo, password da base de dados, vai pedir para confirmar a origem dos dados e qual a ligação a fazer, eu queria que tudo isto fosse automático. O problema falta por completar melhor estas linhas de código:
sDBPath = App.Path & "\base de dados\bd.mdb"
.OpenDataSource Name:=sDBPath, SQLStatement:="SELECT * FROM tbl_socios"
Quem poder ajudar, agradecia, é urgente.
Obrigada
A conexao é feita à  base de dados da seguinte forma:
Set conn = New ADODB.Connection
conn.Open "driver={microsoft access driver (*.mdb)}; DBQ=" & App.Path & "\base de dados\bd.mdb;pwd=xxxxx"
Poderá ajudar
Set conn = New ADODB.Connection
conn.Open "driver={microsoft access driver (*.mdb)}; DBQ=" & App.Path & "\base de dados\bd.mdb;pwd=xxxxx"
Poderá ajudar
Cara,
Eu estou querendo criar um programa assim também. Mas o que significa AutoText?
Eu estou querendo criar um programa assim também. Mas o que significa AutoText?
O comando para impressão do doc do Word, pelo VB é:
DocWord.ActiveDocument.PrintOut]DocWord.ActiveDocument.PrintOut
Pessoal ninguem sabe mesmo como completar a string?
Não entendi pra que vc utiliza o AutoTexto do Word.
Mas veja, o autotexto é particular de uma determinada máquina, um usuário pode acrescentar diversos tipos de autotexto e este fica gravado no arquivo Normal do Word, só que em outra máquina este autotexto pode não existir, aÃ, seu aplicativo pode causar erro e não executar a função planejada.
Eu tenho aplicativos, inclusive com exemplo postado aqui no site de mala direta onde o documento é pre-definido, assim, não há necessidade de criar um novo, o documento se atualiza automaticamente com os dados que o usuário selecionar. (procure por: Emitindo relatórios pelo Word via VB - ou algo assim) e veja como funciona, ao menos como exemplo. De reprente, vc pode ter alguma idéia de como resolver seu problema.
Mas veja, o autotexto é particular de uma determinada máquina, um usuário pode acrescentar diversos tipos de autotexto e este fica gravado no arquivo Normal do Word, só que em outra máquina este autotexto pode não existir, aÃ, seu aplicativo pode causar erro e não executar a função planejada.
Eu tenho aplicativos, inclusive com exemplo postado aqui no site de mala direta onde o documento é pre-definido, assim, não há necessidade de criar um novo, o documento se atualiza automaticamente com os dados que o usuário selecionar. (procure por: Emitindo relatórios pelo Word via VB - ou algo assim) e veja como funciona, ao menos como exemplo. De reprente, vc pode ter alguma idéia de como resolver seu problema.
Tópico encerrado , respostas não são mais permitidas