Instruções Lock, Unlock

Controla o acesso por outros processos a todos ou parte de um arquivo aberto usando a instrução Abrir .

Sintaxe

Bloquear [ # ] número de arquivos, [ recordrange ] . .Desbloquear [ # ] número de arquivos, [ recordrange ]

A sintaxe de instrução Bloquear e Desbloquear tem estas partes:

Sair Descrição
númerodoarquivo Obrigatório. Qualquer número de arquivo válido.
recordrange Opcional. O intervalo de registros a serem bloqueados ou desbloqueados.

Configurações

As configurações de argumentode conjunto de registros são:

recnumber | [ iniciar ] Paraterminar

Configuração Descrição
renumeração Número de registro (arquivos de modo aleatório ) ou número de bytes (arquivos de modo binário ) no qual o bloqueio ou desbloqueio começa.
start Número do primeiro registro ou byte a ser bloqueado ou desbloqueado.
end Número do último registro ou byte para bloquear ou desbloquear.

Comentários

As instruções Bloquear e Desbloquear são usadas em ambientes em que vários processos podem precisar de acesso ao mesmo arquivo.

As instruções Bloquear e Desbloquear sempre são usadas em pares. Os argumentos para Bloquear e Desbloquear devem corresponder exatamente.

O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você especificar apenas um registro, somente esse registro será bloqueado ou desbloqueado. Se você especificar um intervalo de registros e omitir um registro inicial (iniciar), todos os registros do primeiro registro até o final do intervalo (final) serão bloqueados ou desbloqueados. O uso do Bloqueio sem renumeração bloqueia todo o arquivo; usar o Desbloqueio sem renumeração desbloqueia todo o arquivo.

Se o arquivo tiver sido aberto para entrada ou saída sequencial, Bloquear e Desbloquear afetará todo o arquivo, independentemente do intervalo especificado por início e término.

Importante

Certifique-se de remover todos os bloqueios com uma instrução Unlock antes de fechar um arquivo ou abandonar seu programa. A falha na remoção de bloqueios produz resultados imprevisíveis.

Exemplo

Este exemplo ilustra o uso das instruções Bloquear e Desbloquear . Enquanto um registro está sendo modificado, o acesso de outros processos ao registro é negado. Este exemplo pressupõe que TESTFILE seja um arquivo que contém cinco registros do tipo Recorddefinido pelo usuário .

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. 

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.