Problemas con vb
Desde Madrid.
He creado un formulario en access y desde ahí a su vez he generado un botón de comando al que he incluido código en vb para imprimir en una carta en word, el problema que tengo es que al generar este vinculo se me imprime con los campos indicados pero no me permite guardar los cambios ya que word se cierra automáticamente, que podría hacer para que me diera esa opción antes de cerrarme word. Te adjunto el código a ver si me puedes echar una manilla.
Gracias de antemano por tu ayuda.
On Error GoTo BotonEnviar_Error
Dim objWord As Word.Application
'Inicia el Word
Set objWord = CreateObject("Word.Application")
With objWord
'Hace visible la ventana de Word
.Visible = True
'Abre el documento de Word que interactuará con Access
.Documents.Open ("C:\CARTA.DOC")
'Selecciona los marcadores del documento y los reemplaza con los valores de los campos del formulario.
.ActiveDocument.Bookmarks("Nombre").Select
.Selection.Text = (CStr(Forms!Clientes!Nombre))
.ActiveDocument.Bookmarks("Apellido1").Select
.Selection.Text = (CStr(Forms!Clientes!Apellido1))
.ActiveDocument.Bookmarks("Apellido2").Select
.Selection.Text = (CStr(Forms!Clientes!Apellido2))
.ActiveDocument.Bookmarks("Dirección").Select
.Selection.Text = (CStr(Forms!Clientes!Dirección))
.ActiveDocument.Bookmarks("CodigoPostal").Select
.Selection.Text = (CStr(Forms!Clientes!CódigoPostal))
.ActiveDocument.Bookmarks("Población").Select
.Selection.Text = (CStr(Forms!Clientes!Población))
.ActiveDocument.Bookmarks("Apellidos").Select
.Selection.Text = (CStr(Forms!Clientes!Apellido1))
End With
'Imprime el documento
objWord.ActiveDocument.PrintOut Background:=False
'Cierra el documento sin guardar los cambios
objWord.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
'Cierra Word y libera las variables
objWord.Quit
Set objWord = Nothing
Exit Sub
BotonEnviar_Error:
'Si el campo del formulario está vacío, se elimina el marcador
If Err.Number = 94 Then
objWord.Selection.Text = ""
Resume Next
Else
MsgBox Err.Number & vbCr & Err.Description
End If
Exit Sub
He creado un formulario en access y desde ahí a su vez he generado un botón de comando al que he incluido código en vb para imprimir en una carta en word, el problema que tengo es que al generar este vinculo se me imprime con los campos indicados pero no me permite guardar los cambios ya que word se cierra automáticamente, que podría hacer para que me diera esa opción antes de cerrarme word. Te adjunto el código a ver si me puedes echar una manilla.
Gracias de antemano por tu ayuda.
On Error GoTo BotonEnviar_Error
Dim objWord As Word.Application
'Inicia el Word
Set objWord = CreateObject("Word.Application")
With objWord
'Hace visible la ventana de Word
.Visible = True
'Abre el documento de Word que interactuará con Access
.Documents.Open ("C:\CARTA.DOC")
'Selecciona los marcadores del documento y los reemplaza con los valores de los campos del formulario.
.ActiveDocument.Bookmarks("Nombre").Select
.Selection.Text = (CStr(Forms!Clientes!Nombre))
.ActiveDocument.Bookmarks("Apellido1").Select
.Selection.Text = (CStr(Forms!Clientes!Apellido1))
.ActiveDocument.Bookmarks("Apellido2").Select
.Selection.Text = (CStr(Forms!Clientes!Apellido2))
.ActiveDocument.Bookmarks("Dirección").Select
.Selection.Text = (CStr(Forms!Clientes!Dirección))
.ActiveDocument.Bookmarks("CodigoPostal").Select
.Selection.Text = (CStr(Forms!Clientes!CódigoPostal))
.ActiveDocument.Bookmarks("Población").Select
.Selection.Text = (CStr(Forms!Clientes!Población))
.ActiveDocument.Bookmarks("Apellidos").Select
.Selection.Text = (CStr(Forms!Clientes!Apellido1))
End With
'Imprime el documento
objWord.ActiveDocument.PrintOut Background:=False
'Cierra el documento sin guardar los cambios
objWord.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
'Cierra Word y libera las variables
objWord.Quit
Set objWord = Nothing
Exit Sub
BotonEnviar_Error:
'Si el campo del formulario está vacío, se elimina el marcador
If Err.Number = 94 Then
objWord.Selection.Text = ""
Resume Next
Else
MsgBox Err.Number & vbCr & Err.Description
End If
Exit Sub
1 Respuesta
Respuesta de agustinator
1