Instrucciones Lock y UnlockLock, Unlock statements

Controla el acceso de otros procesos a todo o parte de un archivo abierto mediante la instrucción Open .Controls access by other processes to all or part of a file opened by using the Open statement.

SintaxisSyntax

Bloqueo [ # ] númeroarchivo, [ rangoreg ] ...Lock [ # ] filenumber, [ recordrange ] . . .
Desbloquear [ # ] númeroarchivo, [ rangoreg ]Unlock [ # ] filenumber, [ recordrange ]


La sintaxis de las instrucciones Lock y Unlock tiene estas partes:The Lock and Unlock statement syntax has these parts:

PartPart DescripciónDescription
númeroArchivofilenumber Obligatorio.Required. Cualquier número de archivo válido.Any valid file number.
rangoregrecordrange Opcional.Optional. El rango de registros que bloquear o desbloquear.The range of records to lock or unlock.

ConfiguraciónSettings

Los valores de configuración del argumento rangoreg son:The recordrange argument settings are:

númeroreg | [ Inicio ] Para finrecnumber | [ start ] To end


ValorSetting DescripciónDescription
númeroregrecnumber Número de registro (archivos de modo Random) o número de byte (archivos de modo Binary) en el que empieza el bloqueo o el desbloqueo.Record number (Random mode files) or byte number (Binary mode files) at which locking or unlocking begins.
startstart Número del primer registro o byte que bloquear o desbloquear.Number of the first record or byte to lock or unlock.
endend Número del último registro o byte que bloquear o desbloquear.Number of the last record or byte to lock or unlock.

ObservacionesRemarks

Las instrucciones Lock y Unlock se usan en entornos en los que varios procesos pueden precisar acceso al mismo archivo.The Lock and Unlock statements are used in environments where several processes might need access to the same file.

Las instrucciones Lock y Unlock se usan siempre en parejas.Lock and Unlock statements are always used in pairs. Los argumentos para Lock y Unlock deben coincidir exactamente.The arguments to Lock and Unlock must match exactly.

El primer byte o registro de un archivo se encuentra en la posición 1, el segundo byte o registro en la posición 2 y así sucesivamente.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Si especifica solo un registro, solo ese registro está bloqueado o desbloqueado.If you specify just one record, only that record is locked or unlocked. Si especifica un rango de registros y omite un registro de inicio (inicio), se bloquean o desbloquean todos los registros del primer registro al final del rango (fin).If you specify a range of records and omit a starting record (start), all records from the first record to the end of the range (end) are locked or unlocked. Si se usa Lock sin númeroReg, se bloquea todo el archivo; si se usa Unlock sin númeroReg, se desbloquea todo el archivo.Using Lock without recnumber locks the entire file; using Unlock without recnumber unlocks the entire file.

Si el archivo se ha abierto para una entrada o salida secuencial, Lock y Unlock afectan a todo el archivo, independientemente del rango especificado por inicio y fin.If the file has been opened for sequential input or output, Lock and Unlock affect the entire file, regardless of the range specified by start and end.

Importante

[!IMPORTANTE] Asegúrese de quitar todos los bloqueos con una instrucción Unlock antes de cerrar un archivo o salir del programa.Be sure to remove all locks with an Unlock statement before closing a file or quitting your program. Un error al quitar los bloqueos puede producir resultados impredecibles.Failure to remove locks produces unpredictable results.

EjemploExample

En este ejemplo se muestra el uso de las instrucciones Lock y Unlock.This example illustrates the use of the Lock and Unlock statements. Cuando se está modificando un registro, se deniega el acceso de otros procesos al registro.While a record is being modified, access by other processes to the record is denied. En este ejemplo, TESTFILE se supone que es un archivo que contiene cinco registros del tipo Recorddefinido por el usuario.This example assumes that TESTFILE is a file containing five records of the user-defined type Record.

Type Record    ' Define user-defined type. 
    ID As Integer 
    Name As String * 20 
End Type 
 
Dim MyRecord As Record, RecordNumber    ' Declare variables. 
' Open sample file for random access. 
Open "TESTFILE" For Random Shared As #1 Len = Len(MyRecord) 
RecordNumber = 4    ' Define record number. 
Lock #1, RecordNumber    ' Lock record. 
Get #1, RecordNumber, MyRecord    ' Read record. 
MyRecord.ID = 234    ' Modify record. 
MyRecord.Name = "John Smith" 
Put #1, RecordNumber, MyRecord    ' Write modified record. 
Unlock #1, RecordNumber    ' Unlock current record. 
Close #1    ' Close file. 

Vea tambiénSee also

Soporte técnico y comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.