Error al importar de Access 2003 a Access 2016

La verdad, hace siglos que no toco Access, y no me acuerdo de nada.

El otro día nos encontramos una base de datos que preparamos hace años con todos los cd's de la familia clasificados.

En el formulario CD's, hay una casilla de verificación asociada al campo "Banda Sonora".

Si se marcaba esa casilla, en el subformulario "Canciones" aparecía la etiqueta y el cuadro de texto asociado a "Película"; si no se marcaba la casilla, ese campo permanecía invisible.

Hasta ahora (o hasta la última vez que vi esa base de datos, hace tiempo), nunca dio error.

Pero al intentar abrir esa base de datos con Access 2016, da error.

Primero, aparece un mensaje que dice:

"La expresión 'Al activar registro' que ha especificado como valor de la propiedad de evento produjo el error Ocurrió un problema mientras Microsoft Access se comunicaba con el servidor OLE.

*La expresioón no da como resultado el nombre de una macro, de una función definida por el usuario o [Procedimiento de evento].

*Hubo un error al evaluar la función, evento o macro."

Como el único "Evento" que tiene la base de datos es ese botón de verificación, he comprobado el código, que está en "después de actualizar" como procedimiento de evento en la casilla de verificación:

Private Sub Banda_Sonora_AfterUpdate()
If Me.Banda_Sonora = True Then
Me.Canciones.Form.Película.Visible = True
Me.Canciones.Form.Película_Etiqueta.Visible = True
Else
Me.Canciones.Form.Película.Visible = False
Me.Canciones.Form.Película_Etiqueta.Visible = False
End If
End Sub

Si borro el código, obviamente, deja de dar error cada vez que cambio de registro, pero no me deja introducir el nombre de la película asociada a la banda sonora, porque la etiqueta y su correspondiente cuadro de texto permanecen no visibles.

¿Alguien sabría decirme qué está mal en ese código? ¿Y qué ha cambiado desde el Access 2003 para que ahora no sea válido?

2 Respuestas

Respuesta
1

Lo tienes casi bien, es un pequeño detalle- Mira, si tengo el formulario Compras, con el subformulario DetalleCompra, los cuadros de texto Antes y después no se ven

Cuando "marco" la casilla de verificación Verificación32

El código del evento Después de actualizar de la casilla es

Private Sub Verificación32_AfterUpdate()
If Verificación32 = True Then
Me.DetalleCompra.Form!Antes.Visible = True
Me.DetalleCompra.Form!Despues.Visible = True
End If
End Sub

El signo de admiración entre form y Antes le indica que Antes es un control del subformulario.

Gracias, Julián.

He cambiado el código como sugieres, pero sigue dando el mismo error... no sé qué es lo que está mal...quizá no sea el código, y hay algo dañado en la base de datos.

Private Sub Banda_Sonora_AfterUpdate()
If Me.Banda_Sonora = True Then
Me.Canciones.Form!Película.Visible = True
Me.Canciones.Form!Película_Etiqueta.Visible = True
End If
End Sub

En vista diseño del formulario, selecciona el subformulario y mira en sus Propiedades-Otras-Nombre si se llama Canciones.

Respuesta
1

Viendo el código que es muy simple no tiene porque arrojar error así haya desarrollado su base de datos en Access 2003. No se deje confundir, si quiere envíeme la base de datos a [email protected] y con gusto la reviso. Favor en el asunto hacer referencia a la consulta.

Vale, os cuento lo que he hecho.

Pensando en que, quizá, había sido algún error con la importación al Excel 2013, he abierto otra base de datos en blanco y he importado tanto tablas como formularios de la tabla original.

Hecho ésto, en lugar del error anterior, me daba un error de compilación, relacionado con la misma casilla de verificación.

He borrado la casilla, y la he creado de nuevo, con el mismo código original, cambiando sólo el  nombre de la casilla de verificación, que ha cambiado.

Ahora ya funciona. Mil gracias. :)

Me alegro lo haya solucionado

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas