Compartilhar via


Instruções Lock, Unlock

Controla o acesso por outros processos a todo ou parte de um ficheiro aberto através da instrução Open .

Sintaxe

Lock [ # ] filenumber, [ recordrange ] . . .Desbloquear [ # ] filenumber, [ recordrange ]

A sintaxe da instrução Bloquear e Desbloquear tem as seguintes partes:

Sair Descrição
númerodoarquivo Obrigatório. Qualquer número de arquivo válido.
recordrange Opcional. O intervalo de registos a bloquear ou desbloquear.

Configurações

As definições do argumentorecordrange são:

renumeração | [ iniciar ] Paraterminar

Setting Descrição
renumeração Número de registo (ficheiros de modo aleatório ) ou número de byte (ficheiros de modo binário ) em que o bloqueio ou desbloqueio começa.
start Número do primeiro registo ou byte a bloquear ou desbloquear.
end Número do último registo ou byte a bloquear ou desbloquear.

Comentários

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

As instruções Bloquear e Desbloquear são sempre utilizadas em pares. Os argumentos para Bloquear e Desbloquear têm de corresponder exatamente.

O primeiro registo ou byte num ficheiro está na posição 1, o segundo registo ou byte está na posição 2 e assim sucessivamente. Se especificar apenas um registo, apenas esse registo é bloqueado ou desbloqueado. Se especificar um intervalo de registos e omitir um registo inicial (iniciar), todos os registos do primeiro registo até ao fim do intervalo (fim) serão bloqueados ou desbloqueados. A utilização de Bloquear sem renumeração bloqueia todo o ficheiro; utilizar Desbloquear sem renumeração desbloqueia todo o ficheiro.

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

Importante

Certifique-se de que remove todos os bloqueios com uma instrução Unlock antes de fechar um ficheiro ou sair do programa. A falha na remoção de bloqueios produz resultados imprevisíveis.

Exemplo

Este exemplo ilustra a utilização das instruções Bloquear e Desbloquear . Enquanto um registo está a ser modificado, o acesso por outros processos ao registo é negado. Este exemplo pressupõe que se trata de um ficheiro que TESTFILE contém cinco registos do tipo Recorddefinido pelo utilizador .

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.