para eso tienes varias opciones, lo que yo siempre uso son las transacciones de la base de datos, de esa manera la persona que llegó segundo hace hasta que el primer usuario termine de hacer el cambio que tenga planificado, para las transacciones se usa: Conexion.BeginTrans para aperturar la conexión... Conexion.CommitTrans para cerrar la conexión con éxito o Conexion.RollbackTrans para cerrar la conexión con error; esta última lo que hace es deshacer todos los cambios (Actualizaciones) en la base de datos que se hicieron posteriores al BeginTrans y el CommitTrans simplemente las confirma, mientras la transacción no se haya cerrado, ningún usuario podrá acceder a la información. (al menos no usando access)
otra opción es que al seleccionar hagas un update a la tabla, a una columna que indique una especia de estatus que la inmovilice para cualquier otro usuario , antes de actualizar la base de datos evaluar dicha columna y si elflag esta activado mostrar un mensjae al usuario indicando que el registro esta siendo modificado por otro usuario y que tiene que esperar, este último recurso no me gusta usarlo porque son demasiadas lecturas a la base de datos y cuando se tienen demasiados registros puede volverse algo lento.
Salud

.