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 Record
definido 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.