Access - Copiar objetoOLE a Word

 
Vista:

Copiar objetoOLE a Word

Publicado por Ttoni (1 intervención) el 02/12/2005 13:28:45
Muy Buenas, he encontrado este foro buscando por internet y aunque voy a empezar pidiendo ayuda, espero también poder ser útil.

Mi problema es que tengo una tabla con un campo de tipo Objeto OLE y a través de un formulario voy insertando registros de manera que al crear uno nuevo inserto un documento de WORD con un formato especial para visulizar mejor su contenido. Con esto solo se tienen que pegar en él o escribir su contenido.

Posteriormente en otro formulario quiero consultar estos datos, modificarlo e imprimirlos, para ello cuando voy al registro que quiero y entro en el campo, quiero que se abra el WORD con un documento con un formato especial para imprimir , con la siguiente sentecia:

Set VWord = CreateObject("Word.Application")
Set DocumentoWord = VWord.Documents.Add("C:\blanco_print.doc")
VWord.Visible = True

Y en el copiar el contenido de un campo del formulario de tipo Objeto OLE, para ello pretendia activar el campo, copiar su contenido y pegarlo en la aplicación WORD abierta que contiene el nuevo formato.

Me!OLEobj.Verb = acOLEVerbPrimary
Me!OLEobj.Action = acOLEActivate

Ctrl+E
Ctrl+C
canviar a la ventana de WORD
Ctrl+V

Pero no logro poder seleccionar el contenido del campo OLE copiarlo y pegarlo en WORD automaticamente, en lugar de a mano, ni con SendKeys.

Alguien sabria como puedo lograr esto u otra forma de conseguirlo, muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Copiar contenido de campo OLE y pegarlo en Word automáticamente

Publicado por Alejandro (4142 intervenciones) el 14/06/2023 21:36:17
Para lograr copiar el contenido de un campo OLE en Access y pegarlo automáticamente en Word, puedes utilizar la biblioteca Microsoft Word en tu proyecto de Access. A continuación, te proporcionaré un ejemplo de código que puedes utilizar en el evento de un botón o en el evento de apertura de un formulario.

1. Asegúrate de haber agregado la referencia a Microsoft Word en tu proyecto de Access. Para hacer esto, ve al Editor de Visual Basic (presiona Alt + F11), luego selecciona "Herramientas" en la barra de menú y elige "Referencias". En la lista de referencias disponibles, busca y marca la opción "Microsoft Word XX.X Object Library" (donde "XX.X" representa la versión de Word instalada en tu sistema). Luego haz clic en "Aceptar" para guardar los cambios.

2. En el evento del botón o en el evento de apertura del formulario en el que deseas realizar la copia y pegado automático, agrega el siguiente código VBA:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub btnCopiarPegar_Click()
    Dim wordApp As Object
    Dim wordDoc As Object
    Dim objData As DataObject
 
    ' Crear una instancia de Word
    Set wordApp = CreateObject("Word.Application")
 
    ' Abrir el documento en Word
    Set wordDoc = wordApp.Documents.Add("C:\blanco_print.doc")
 
    ' Mostrar Word
    wordApp.Visible = True
 
    ' Obtener el contenido del campo OLE
    Set objData = New DataObject
    Me!OLEobj.Action = acOLEActivate
    objData.GetFromClipboard
 
    ' Pegar el contenido en Word
    wordDoc.Range.Text = objData.GetText
 
    ' Limpiar el objeto de datos y liberar memoria
    Set objData = Nothing
End Sub

Asegúrate de reemplazar "btnCopiarPegar" con el nombre real del botón o el nombre del evento de formulario que desees utilizar.

Este código creará una instancia de Word, abrirá el documento "blanco_print.doc" (asegúrate de proporcionar la ruta correcta del archivo), mostrará Word en pantalla, obtendrá el contenido del campo OLE utilizando el portapapeles y pegará ese contenido en el documento de Word abierto.

Espero que esta solución te sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar