Visual Basic para Aplicaciones - OldValue

Life is soft - evento anual de software empresarial
   
Vista:

OldValue

Publicado por DEBOH (12 intervenciones) el 15/10/2009 11:37:53
Hola a Tod@s
Veréis , tego un problema con Oracle y Access. Mi base de datos access tiene tablas vinculadas a oracle, y en las tablas de oracle existen campos BLOB que no controlan la concurrencia a los datos. Eso es un error de oracle , entonces me toca controlarlo a manubrio desde el access. En concreto es desde un ComboBox , por lo que uso la propiedad OlValue para saber el valor anterior que había en el campo para comparar con la BD Oracle, en caso de que sean distintos , han habido cambios mientras otro usuario modificaba el registro.

Mi código es:

dim strTexto as string
dim rsTexto as dao.recordset

strTexto = iif(isnull(me.FormCampo.value),"",me.FormCampo.Value)
set rsTexto = CurrentDb.OpenRecordset ("Select TablaCampo from Tabla;")

if rsTexto.Recordcount > 0 then
if strTextoOld <> rsTexto.Fields(0) then
msgbox "Otro usuario modificó el registro"
me.FormCampo.value = rsTexto.Fields(0)
end if
end if


Lo que hago es recoger el valor anterior del campo y compararlo con la BD, si es distinto es que otro user ha hecho modificaciones mientras el visulaizaba el otro valor. Entonces actualiza al usuario lo que hay en la BD.

Funciona correctamente pero lo que no consigo controlar es la primera vez que debería saltar la excepción. Oldvalue solo se activa cuando se edita el campo por lo tanto la primera "activación" no recoge nada porque OldValue = alo que hay en el campo. Esto pasa cada vez que accedo al formulario. Las siguientes veces ya si que funciona.

Como podría yo recoger ese valor??? He probado a ver si lo guardara en el portapapeles pero no lo hace.

alguna idea? 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