¿Cómo manejar objetos OLE incrustados en una tabla de Access?

En relación con este tema, ya tengo creado el Objeto OLE en mi tabla, asociado a un formulario, en el que lo que hago es arrastrar un documento Word.

Esta tabla es una tabla temporal en la que en función de otros valores asignados al registro, quiero grabar ese fichero (guardado en el campo Objeto OLE de la T_Temporal) en una ruta determinada (que cambiará según los valores) y grabar en la tabla (definitiva) los valores de la temporal, además de la ruta donde dejé el fichero.

¿Cómo se maneja el objeto OLE desde código para hacer esa grabación como fichero Word? Casi doy por hecho que tendré que cargar alguna librería (y aquí me encuentro un poco pez)... ¿cuál? ¿A qué método/función llamar?

1 respuesta

Respuesta
2

Te digo lo que haría por si te sirve. Dejo por sentado que no me gustan los campos OLE.

Si tengo una tabla

En que los campos Ruta1 y Ruta2 son texto

Construyo un formulario, donde anoto el nombre del cliente y cuando el cursor llegue a ruta 1(pero se podía poner en cualquier otro evento), se abra un explorador parea que localices el archivo que quieres guardar en esa Ruta 1(lo mismo para Ruta2)

Y te quedaría

Entonces cuando quieras ver uno de los documentos, basta con pulsar el botón VER (pero también se podría poner en cualquier otro evento).

Para eso está la función MSOFiledialog y Application.FollowHyperlink

El código del formulario es

Public Function buscaArchivo() As String
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.AllowMultiSelect = False
.ButtonName = "Seleccionar"
.Title = "Seleccionar el archivo"
.InitialFileName = Application.CurrentProject.Path
.InitialView = msoFileDialogViewDetails
.Filters.Clear
.Filters.Add "All files", "*.*"
If .Show = True Then
buscaArchivo = .SelectedItems(1)
Else
MsgBox "Ha pulsado el botón <Cancelar>."
End If
End With
End Function
Private Sub Comando7_Click()
Application.FollowHyperlink Ruta1
End Sub
Private Sub Comando8_Click()
Application.FollowHyperlink Ruta2
End Sub
Private Sub Ruta1_GotFocus()
Ruta1 = buscaArchivo()
End Sub
Private Sub Ruta2_GotFocus()
Ruta2 = buscaArchivo()
End Sub

Eso sí, acuérdate de abrir el editor de VB y en Herramientas-Referencias activa la casilla Microsoft Office XX.X Object Library

El XX. X es por la versión del Office que tengas instalado.

¡Hola! Tampoco me gustan los objetos OLE, lo incluí porque el fichero lo estoy arrastrando desde un email. Pero me has dado una idea... según recibo el fichero en el campo, lo guardo en una carpeta temporal y luego ya lo trabajo para dejarlo en su ruta definitiva.

¡Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas