Lock 语句、Unlock 语句

控制其他进程对使用 Open 语句打开的全部或部分文件的访问。

语法

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

LockUnlock 语句语法包含以下部分:

Part 说明
filenumber 必填。 任何有效的文件编号
recordrange 可选。 要锁定或解锁的记录的范围。

设置

recordrange参数设置包括:

recnumber |[ start ]结束

Setting 说明
recnumber 要开始锁定或解锁的记录编号(Random 模式文件)或字节编号(Binary 模式文件)。
start 要锁定或解锁的第一个记录或字节的编号。
end 要锁定或解锁的最后一个记录或字节的编号。

备注

LockUnlock 语句将在多个过程可能需要访问同一个文件的环境中使用。

LockUnlock 语句始终成对使用。 LockUnlock 的参数必须完全匹配。

文件中的第一个记录或字节位于位置 1,第二个记录或字节位于位置 2,依此类推。 如果只指定一条记录,则只有该记录被锁定或解锁。 如果您指定一系列记录并忽略开始记录 (start),则将锁定或解锁从第一个记录到范围结尾 (end) 的记录。 在没有 recnumber 的情况下使用 Lock 将锁定整个文件;在没有 recnumber 的情况下使用 Unlock 将解锁整个文件。

如果已打开文件进行连续输入或输出,则 LockUnlock 将影响整个文件,而不管 startend 指定的范围如何。

重要

[!重要信息] 务必在关闭文件或退出程序之前使用 Unlock 语句删除所有锁定。 删除锁定失败将产生无法预测的结果。

示例

此示例演示对 LockUnlock 语句的使用。 修改记录时,将拒绝其他过程对记录的访问。 此示例假定 是 TESTFILE 包含用户定义类型 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. 

另请参阅

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。