Vous êtes sur la page 1sur 4

HISTÓRICO EN MEMO1

A partir de Access 2007 tenemos la posibilidad de hacer un


seguimiento “semi-automático” de los valores introducidos
en un campo memo (texto largo en Access 2013).

En este texto os explico una manera 3B (buena, bonita y


barata) cómo podemos configurar nuestro campo memo
para hacer ese tracking.

CONFIGURANDO NUESTRO MEMO


Supongamos que tenemos una tabla, TDatos, que contiene un campo memo (texto largo en
Access 2013, y creo que con esta segunda repetición ya nos queda claro que cuando hablo de
memo me refiero a estos dos tipos de datos indistintamente).

Por ejemplo, una tabla muy simple:

Si nos fijamos en las propiedades del campo memo, la última de ellas es “Sólo anexar”, y por
defecto su valor está configurado en NO.

Si cambiamos ese valor a SÍ lo que estamos indicando es que queremos guardar un histórico
de las ediciones que se produzcan en ese campo memo. Así de simple es (al menos esta
primera parte, je, je...).

TESTEANDO Y ACCEDIENDO A LOS DATOS


Vamos a situar nuestra tabla en vista hoja de datos y vamos a escribir algunos registros. Una
vez escritos vamos a borrar los contenidos de los campos memo y los vamos a cambiar por
otros, o bien los modificamos sin borrar.

¿Lo hemos hecho ya?

1 La BD de ejemplo os la podéis bajar aquí

1
Visítame en http://neckkito.siliconproject.com.ar
Pues tras esas sucesivas modificaciones a mí me queda esto:

Si ahora me sitúo sobre el campo memo del primer registro,


por ejemplo, y doy clic con el botón derecho del ratón,
vemos que nos aparece la opción “Mostrar historial de
columna”

Si seleccionamos esta opción veremos el historial de todo lo que he escrito, borrado,


modificado y vuelto a escribir:

¡Y ya está!

PROGRAMANDO DESDE UN FORMULARIO


Lo anterior también podemos hacerlo directamente desde un formulario. Supongamos que
tenemos el formulario FDatos, basado en TDatos.

2
Visítame en http://neckkito.siliconproject.com.ar
En la ilustración se muestra el menú emergente del clic derecho del ratón sobre el campo
memo, con la opción de nuevo de “Mostrar historial de columna”.

Pero vayamos un poco más allá. Imaginemos que hemos bloqueado la aparición del menú
contextual. ¿Cómo lo solventamos?

Vamos a añadir un botón de comando a nuestro formulario, que llamaremos


cmdHistorialMemo2

En el evento “Al hacer clic” de ese botón vamos a generar el siguiente código:


Private Sub cmdHistorialMemo_Click()
Const nomClave As String = "Id" 'Nombre de la clave principal
Dim miQuery As String
Dim miId As Long 'Long porque el identificador de registro es autonumérico
'Cogemos el identificador del registro
miId = Nz(Me.Id.Value, 0)
'Si no hay valor avisamos y salimos
If miId = 0 Then
MsgBox "No hay datos para mostrar. El registro está vacío", vbExclamation, "AVISO"
Exit Sub
End If
'Construimos la query
miQuery = "[" & nomClave & "]=" & miId
'Lanzamos los datos
MsgBox Application.ColumnHistory("TDatos", "Notas", miQuery), vbInformation, "DATOS MODIFICACIONES"
End Sub

Si os fijáis “la madre del cordero” está en la última línea, donde indicamos que queremos la
“ColumnHistory” y le pasamos como parámetros el nombre de la tabla, el nombre del campo
memo y la query que nos identifica el nombre de la clave principal y su valor, correspondiente
al registro que estamos examinando.

Si ahora alguien me dijera: “¡Pero es que mi clave principal no es numérica!”. Pues que no
cunda el pánico: simplemente tenemos que construirnos la query entrecomillando con comillas
simples el valor de la clave principal.

2 Para asignar un nombre a un control lo que debemos hacer es sacar las propiedades de ese control e irnos a la Pestaña Otras →
Nombre. Ahí escribimos el nombre que queramos.

3
Visítame en http://neckkito.siliconproject.com.ar
En pocas palabras, que la línea:

miQuery = "[" & nomClave & "]=" & miId

debería quedarnos

miQuery = "[" & nomClave & "]='" & miId & "'"

Si el valor de la clave principal fuera una fecha (¿quién


utiliza fechas como clave principal?), en lugar de comillas
simples deberíamos utilizar almohadillas (#).

PARA FINALIZAR ESTE ARTÍCULO/EJEMPLO


Pues nada... ya sabéis una utilidad más de los campos memos y de esa propiedad “tan rara”
que es “Sólo anexar” (que, por su nombre, poco nos dice), y cómo utilizarlo en tabla, consulta
o formulario.

Espero que os sea de utilidad.

Un saludo, y...

¡suerte!

4
Visítame en http://neckkito.siliconproject.com.ar

Vous aimerez peut-être aussi