Pasar campos de formularios de access a word mediante boton

19/06/2012 - 23:25 por kbello | Informe spam
Buenas a todos, estoy intentando pasar unos campos de 2 formularios distintos en access a una plantilla de word, pero solo me pasa los campos del formulario actual(sobre el que tengo el boton), los del otro formulario el codigo me da error. Os paso el codigo.

Private Sub Comando45_Click()

Const plantilla = "\Factura.dot"

Dim appWord As Word.Application
Dim wordDoc As Word.Document

Set appWord = New Word.Application
With appWord
.Visible = True
.WindowState = wdWindowStateMaximize
End With
Set wordDoc = appWord.Documents.Add(CurrentProject.Path & plantilla)

With wordDoc
.Unprotect
.Bookmarks("Nombre_ase").Range.Text = Me.[Factura].Form!Nombre_ase
.Bookmarks("Direccion_ase").Range.Text = Me.[Factura].Form!Direccion_ase
.Bookmarks("Codigo_postal_ase").Range.Text = Me.[Factura].Form!Codigo_postal_ase
.Bookmarks("Poblacion_ase").Range.Text = Me.[Factura].Form!Poblacion_ase
.Bookmarks("Provincia_ase").Range.Text = Me.[Factura].Form!Provincia_ase
.Bookmarks("CIF_ase").Range.Text = Me.[Factura].Form!CIF_ase

.Bookmarks("Nombre_tra").Range.Text = Me.Nombre_tra.Value
.Bookmarks("Apellido1_tra").Range.Text = Me.Apellido1_tra.Value
.Bookmarks("Apellido2_tra").Range.Text = Me.Apellido2_tra.Value
.Bookmarks("Dni_tra").Range.Text = Me.Dni_tra.Value
.Bookmarks("Direccion_tra").Range.Text = Me.Direccion_tra.Value
.Bookmarks("Poblacion_tra").Range.Text = Me.Poblacion_tra.Value
.Bookmarks("Provincia_tra").Range.Text = Me.Provincia_tra.Value


.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End With




Set appWord = Nothing
Set wordDoc = Nothing
End Sub

Preguntas similare

Leer las respuestas

#1 Emilio
19/06/2012 - 23:34 | Informe spam
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
Hola!
así, de buenas a primeras, diría que te sobran todos esos .text

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
miliuco56 ALGARROBA hotmail PUNTO com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
"kbello" escribió en el mensaje de
noticias news:
Buenas a todos, estoy intentando pasar unos campos de 2 formularios
distintos en
access a una plantilla de word, pero solo me pasa los campos del
formulario
actual(sobre el que tengo el boton), los del otro formulario el codigo me
da
error. Os paso el codigo.

Private Sub Comando45_Click()

Const plantilla = "Factura.dot"

Dim appWord As Word.Application
Dim wordDoc As Word.Document

Set appWord = New Word.Application
With appWord
.Visible = True
.WindowState = wdWindowStateMaximize
End With
Set wordDoc = appWord.Documents.Add(CurrentProject.Path & plantilla)

With wordDoc
.Unprotect
.Bookmarks("Nombre_ase").Range.Text = Me.[Factura].Form!Nombre_ase
.Bookmarks("Direccion_ase").Range.Text > Me.[Factura].Form!Direccion_ase
.Bookmarks("Codigo_postal_ase").Range.Text > Me.[Factura].Form!Codigo_postal_ase
.Bookmarks("Poblacion_ase").Range.Text > Me.[Factura].Form!Poblacion_ase
.Bookmarks("Provincia_ase").Range.Text > Me.[Factura].Form!Provincia_ase
.Bookmarks("CIF_ase").Range.Text = Me.[Factura].Form!CIF_ase

.Bookmarks("Nombre_tra").Range.Text = Me.Nombre_tra.Value
.Bookmarks("Apellido1_tra").Range.Text = Me.Apellido1_tra.Value
.Bookmarks("Apellido2_tra").Range.Text = Me.Apellido2_tra.Value
.Bookmarks("Dni_tra").Range.Text = Me.Dni_tra.Value
.Bookmarks("Direccion_tra").Range.Text = Me.Direccion_tra.Value
.Bookmarks("Poblacion_tra").Range.Text = Me.Poblacion_tra.Value
.Bookmarks("Provincia_tra").Range.Text = Me.Provincia_tra.Value


.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End With




Set appWord = Nothing
Set wordDoc = Nothing
End Sub

__________ Information from ESET Smart Security, version of virus
signature database 7233 (20120619) __________

The message was checked by ESET Smart Security.

http://www.eset.com







__________ Information from ESET Smart Security, version of virus signature database 7233 (20120619) __________

The message was checked by ESET Smart Security.

http://www.eset.com
Respuesta Responder a este mensaje
#2 José Mª Fueyo
20/06/2012 - 11:51 | Informe spam
Hola
No nos comentas que versión de Office utilizas.
Aparte de lo que comenta Emilio, sería interesante que nos dijeras que error te da.

Salu2,
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#3 kbello
20/06/2012 - 20:22 | Informe spam
kbello escribió el 19/06/2012 23:25 :
Buenas a todos, estoy intentando pasar unos campos de 2 formularios distintos
en access a una plantilla de word, pero solo me pasa los campos del formulario
actual(sobre el que tengo el boton), los del otro formulario el codigo me da
error. Os paso el codigo.

Private Sub Comando45_Click()

Const plantilla = "Factura.dot"

Dim appWord As Word.Application
Dim wordDoc As Word.Document

Set appWord = New Word.Application
With appWord
.Visible = True
.WindowState = wdWindowStateMaximize
End With
Set wordDoc = appWord.Documents.Add(CurrentProject.Path & plantilla)

With wordDoc
.Unprotect
.Bookmarks("Nombre_ase").Range.Text = Me.[Factura].Form!Nombre_ase
.Bookmarks("Direccion_ase").Range.Text =
Me.[Factura].Form!Direccion_ase
.Bookmarks("Codigo_postal_ase").Range.Text =
Me.[Factura].Form!Codigo_postal_ase
.Bookmarks("Poblacion_ase").Range.Text =
Me.[Factura].Form!Poblacion_ase
.Bookmarks("Provincia_ase").Range.Text =
Me.[Factura].Form!Provincia_ase
.Bookmarks("CIF_ase").Range.Text = Me.[Factura].Form!CIF_ase

.Bookmarks("Nombre_tra").Range.Text = Me.Nombre_tra.Value
.Bookmarks("Apellido1_tra").Range.Text = Me.Apellido1_tra.Value
.Bookmarks("Apellido2_tra").Range.Text = Me.Apellido2_tra.Value
.Bookmarks("Dni_tra").Range.Text = Me.Dni_tra.Value
.Bookmarks("Direccion_tra").Range.Text = Me.Direccion_tra.Value
.Bookmarks("Poblacion_tra").Range.Text = Me.Poblacion_tra.Value
.Bookmarks("Provincia_tra").Range.Text = Me.Provincia_tra.Value


.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End With




Set appWord = Nothing
Set wordDoc = Nothing
End Sub


Buenas, la version de office que utilizo es la 2010 y el error que me da es el siguiente:
SE HA PRODUCIDO EL ERROR '2465' EN TIEMPO DE EJECUCION:
Base de datos no encuentra el campo '|1' al que se hace referencia en la expresión.

Y me abre la plantilla de word, pero no inserta los campos.

Saludos
Respuesta Responder a este mensaje
#4 kbello
21/06/2012 - 00:41 | Informe spam
kbello escribió el 19/06/2012 23:25 :
Buenas a todos, estoy intentando pasar unos campos de 2 formularios distintos
en access a una plantilla de word, pero solo me pasa los campos del formulario
actual(sobre el que tengo el boton), los del otro formulario el codigo me da
error. Os paso el codigo.

Private Sub Comando45_Click()

Const plantilla = "Factura.dot"

Dim appWord As Word.Application
Dim wordDoc As Word.Document

Set appWord = New Word.Application
With appWord
.Visible = True
.WindowState = wdWindowStateMaximize
End With
Set wordDoc = appWord.Documents.Add(CurrentProject.Path & plantilla)

With wordDoc
.Unprotect
.Bookmarks("Nombre_ase").Range.Text = Me.[Factura].Form!Nombre_ase
.Bookmarks("Direccion_ase").Range.Text =
Me.[Factura].Form!Direccion_ase
.Bookmarks("Codigo_postal_ase").Range.Text =
Me.[Factura].Form!Codigo_postal_ase
.Bookmarks("Poblacion_ase").Range.Text =
Me.[Factura].Form!Poblacion_ase
.Bookmarks("Provincia_ase").Range.Text =
Me.[Factura].Form!Provincia_ase
.Bookmarks("CIF_ase").Range.Text = Me.[Factura].Form!CIF_ase

.Bookmarks("Nombre_tra").Range.Text = Me.Nombre_tra.Value
.Bookmarks("Apellido1_tra").Range.Text = Me.Apellido1_tra.Value
.Bookmarks("Apellido2_tra").Range.Text = Me.Apellido2_tra.Value
.Bookmarks("Dni_tra").Range.Text = Me.Dni_tra.Value
.Bookmarks("Direccion_tra").Range.Text = Me.Direccion_tra.Value
.Bookmarks("Poblacion_tra").Range.Text = Me.Poblacion_tra.Value
.Bookmarks("Provincia_tra").Range.Text = Me.Provincia_tra.Value


.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End With




Set appWord = Nothing
Set wordDoc = Nothing
End Sub


Este codigo si funciona bien:

.Bookmarks("Nombre_tra").Range.Text = Me.Nombre_tra.Value
.Bookmarks("Apellido1_tra").Range.Text = Me.Apellido1_tra.Value
.Bookmarks("Apellido2_tra").Range.Text = Me.Apellido2_tra.Value
.Bookmarks("Dni_tra").Range.Text = Me.Dni_tra.Value
.Bookmarks("Direccion_tra").Range.Text = Me.Direccion_tra.Value
.Bookmarks("Poblacion_tra").Range.Text = Me.Poblacion_tra.Value
.Bookmarks("Provincia_tra").Range.Text = Me.Provincia_tra.Value

Me inserta estos campos en la plantilla de word del formulario actual (trabajador), pero este otro codigo no funciona (quiero cogerlo de otro formulario que se llama Factura) y al depurar se pone amarilla la primera linea:

.Bookmarks("Nombre_ase").Range.Text = Me.[Factura].Form!Nombre_ase
.Bookmarks("Direccion_ase").Range.Text = Me.[Factura].Form!Direccion_ase
.Bookmarks("Codigo_postal_ase").Range.Text = Me.[Factura].Form!Codigo_postal_ase
.Bookmarks("Poblacion_ase").Range.Text = Me.[Factura].Form!Poblacion_ase
.Bookmarks("Provincia_ase").Range.Text = Me.[Factura].Form!Provincia_ase
.Bookmarks("CIF_ase").Range.Text = Me.[Factura].Form!CIF_ase

Por cierto, he quitado todos los .Text y hace los mismo.

Un saludo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida