Duplicar en registro nuevo un objeto OLE

Tengo un campo definido como objeto OLE. Tengo ya unos registros añadidos a la tabla, en la cual el registro del objeto OLE siempre es el mismo. Me gustaría que, a través de un formulario, cuando genere un registro nuevo, el campo este que definido como objeto OLE se rellene con lo mismo que había en el campo anterior, siempre automáticamente al generar un registro nuevo.

1 Respuesta

Respuesta
1
Supongamos que el campo que contiene el objeto OLE se denomina [ObjetoOLE]. En el código que te voy a escribir tú debes cambiar este nombre por el nombre que tú tienes en tu BD. Voy a suponer también que el formulario tiene un botón que sirve para añadir un nuevo registro.
Vamos allá:
1.- Pones el formulario en vista diseño. Sacas las propiedades del botón y te vas a la pestaña Eventos->Al hacer click. Verás que tiene un pequeño botón de puntos suspensivos. Si haces click sobre él se te abrirá una ventana. Le dices que quieres generar código.
2.- Se te abrirá el editor de VB, con dos líneas por defecto (Private Sub... y End Sub). No debes tocar esas líneas. Entre ellas escribes el siguiente código:
...
Private Sub...
Dim vOLE As Variant
vOLE = Me.[ObjetoOLE].Value
DoCmd.RunCommand acCmdRecordsGoToNew
Me.[ObjetoOLE].Value = vOLE
End Sub
...
Recuerda que debes cambiar el nombre del campo por el correcto.
Y eso es todo.
Ya me dirás si te sale algún problema.
Hola neckkito,
He puesto tu código en el botón de formulario que ya tenia creado, ya que tengo algunas restricciones de edición, así que me ha quedado así el código:
Private Sub comando158_Click()
On Error GoTo Err_Comando158_Click
Me.AllowAdditions = True
DoCmd.GoToRecord , , acNewRec
Dim vOLE As Variant
vOLE = Me.[Shape].Value
Me.[Shape].Value = vOLE
Exit_Comando158_Click:
Exit Sub
Err_Comando158_Click:
MsgBox Err.Description
Resume Exit_Comando158_Click
End Sub
A ver, el tema es que el campo de SHAPE esta definido como objeto OLE, lo que pasa es que yo no puedo visualzarlo en el formulario, en ninguno de los registros. Cuando abro la tabla pone: "DATOS BINARIOS LARGOS". Eso me da igual, que no se vea, porque lo voy a utilizar para otra cosa. He generado un nuevo registro desde formulario y cuando voy a la tabla, el campo SHAPE del nuevo registro esta vacío. ¿Alguna idea?
Muchas gracias por tu colaboración.
Modifica el código así:
...
Private Sub comando158_Click()
On Error GoTo Err_Comando158_Click
Dim vOLE As Variant
vOLE = Me.[Shape].Value
Me.AllowAdditions = True
DoCmd.GoToRecord , , acNewRec
Me.[Shape].Value = vOLE
Exit_Comando158_Click:
Exit Sub
Err_Comando158_Click:
MsgBox Err.Description
Resume Exit_Comando158_Click
End Sub
...
A ver qué pasa ;)
Ya me dirás.
Perfecto. Funciona
Muchas gracias!
Me alegra haberte podido ayudar. :) Te rogaría que finalizaras la consulta, please.
Para lo que necesites, ya sabes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas