Hola numerito
Cuando hacés una consulta sobre la base de datos, se realiza un "bloqueo compartido", es decir, el o los registros que son objeto de la consulta pueden ser consultados por otros usuarios al mismo tiempo, pero no modificados.
Cuando hay un bloqueo compartido pueden realizarse más bloqueos compartidos pero no bloqueos exclusivos.
Cuando lo que querés hacer es una modificación (Agregar, borrar o modificar) el tipo de bloqueo que se debe realizar es un "bloqueo exclusivo".
De este modo, en un ambiente de red, el sistema se asegura que ningún usuario acceda a un dato que está siendo modificado.
Al abrir un cursor, si no se especifica otra cosa, el sistema realiza un bloqueo compartido, esto significa que NO se pueden modificar los datos.
Lo que tenés que hacer si querés modificarlos es un bloqueo exclusivo. ¿y como se hace?
Ejemplo:
Dim Conn
Dim Rs
Dim curDir
curDir = Server.MapPath("/Cronos/base/cronos.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Set Rs = Server.CreateObject("ADODB.Recordset")
Set Rs.ActiveConnection = Conn
Rs.Source = "Select * FROM Proceso Where 1=2"
Rs.CursorType = adOpenStatic
Rs.LockType = adLockOptimistic
Rs.Open
Rs.Addnew
Rs("proceso_id").Value = Request.Form("proceso_id")
Rs("usuario_id").Value = Request.Form("usuario_id")
Rs.Update
Rs.Close
Set Conn = Nothing
Set Rs = Nothing
Set curDir = Nothing
Sin embargo, es más aconsejable, para Altas, Bajas y Modificaciones utilizar el método Execute en lugar de usar cursores (recordest)
¿Y esto otro como se hace?
Ejemplo:
Alta:
Conn.Execute "Insert into
tabla (
campo1, campo2, ... ) values (
valorNumérico, 'ValorTexto', ... )"
Baja:
Conn.Execute "Delete from
tabla where
condicion "
Modificación:
Conn.Execute "Update
tabla set
campo1 = ValorNum, campo2 = 'ValorText' , ... where
condicion "
Suerte