Conflicto de red

Hola Query. Cuando estoy modificando datos de un registro sale el siguiente mensaje: "Otro usuario ha cambiado este registro..." Pero, ¿cómo es posible si yo estoy trabajando solo en la red?
Gracias

1 respuesta

Respuesta
1
Si la base de datos la tienes en un ordenador y el programa .mdb que la controla en otro, posiblemente estés realizando alguna operación sobre las tablas con tipo de apertura que la deja bloqueada en el primer intento.
Con la información que me suministras no puedo indicarte otras posibles causas a tu problema. Por favor indícame más datos como: donde están situadas las bases de datos, es en un formulario donde te da el error, tienes permisos sobre las carpetas y archivos, es a través de código VB o por medio de las propiedades de los formularios, no se cosas que nos ayuden a centrarnos más en el tema.
Tengo instalado el .mde em 3 PCs, que cogen los datos de las tablas en el PC principal. Tengo todos los permisos, abro la tabla "Clientes" para editar un registro en modo Dynaset, (VB), y al cambiar el nombre del cliente por ej. ya me sale el error de conflicto. Gracias por tu ayuda.
A mi me pasaba exactamente la misma situación. Aunque lo abras modo dynaset los permisos de bloqueo de registros actúan en cuanto un usuario accede a la tabla principal.
Para solucionarlo, tuve que crear una función que enviándole la sentencia SQL o nombre de la consulta/tabla de origen abriera el origen de datos sin bloquearlo con la opción 'dbSeeChanges'.
Ej:
private sub Actualiza()
dim rs as recordset
dim sSQL as string
sSQL = "SELECT * FROM Pedidos WHERE CodCliente=" & Me.CodCliente
set rs = SQL_LeerEscribir(sSQL)
Do Until rs.EOF
rs!TotalPedido = rs!TotalPedido * 1,1
rs.MoveNext
loop
rs.close
set rs = nothing
end sub
'<<<<< FUNCION GENERAL QUE DEVUELVE UN CURSOR DE LECTURA AL ORIGEN ESPECIFICADO
Public Function SQL_Leer(sSQL As String) As Recordset
Set SQL_Leer = CurrentDb.OpenRecordset(sSQL, dbOpenSnapshot, dbSeeChanges)
End Function
'<<<<< FUNCION GENERAL QUE DEVUELVE UN CURSOR DE TIPO LEER/ESCRIBIR AL ORIGEN ESPECIFICADO EVIATANDO BLOQUEOS DE LA BASE DE DATOS
Public Function SQL_LeerEscribir(sSQL As String) As Recordset
Set SQL_LeerEscribir = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbSeeChanges)
End Function
Y por supuesto en las propiedades de los formularios establecer a 'sin bloquear' la propiedad bloqueo de registros.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas