Lock, Unlock 陳述式

控制其他進程對使用 Open 語句開啟之檔案之所有或部分的存取。

語法

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

LockUnlock語句語法包含下列部分:

部分 描述
filenumber 必要。 任何有效的檔案編號
recordrange 選用。 要鎖定或解除鎖定的記錄範圍。

設定

recordrange 自量設定如下

recnumber |[ start ] 結束

設定 描述
recnumber (開始鎖定或解除鎖定的二進位模式檔案 (隨機模式檔案) 或位元組編號) 記錄號碼。
start 要鎖定或解除鎖定的第一筆記錄或位元組數目。
end 要鎖定或解除鎖定的最後一筆記錄或位元組數目。

註解

LockUnlock語句會在數個進程可能需要存取相同檔案的環境中使用。

LockUnlock 語句一律會成對使用。 [鎖定] 和 [解除鎖定] 的引數必須完全相符。

檔案中的第一筆記錄或位元組位於位置 1,第二筆記錄或位元組位於位置 2,依此類推。 如果您只指定一筆記錄,則只會鎖定或解除鎖定該記錄。 如果您指定記錄範圍並省略開始記錄 (開始) ,則從第一筆記錄到範圍結尾的所有記錄 (結束) 都會鎖定或解除鎖定。 使用 [不矩號 的鎖定] 會鎖定整個檔案;使用 解除鎖定 而不 使用 recnumber 可解除鎖定整個檔案。

如果檔案已針對循序輸入或輸出開啟, 鎖定解除 鎖定會影響整個檔案,而不論 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 支援與意見反應