Lock, Unlock 陳述式

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

語法

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


Lock解除鎖定 語句語法具有以下幾個部分:

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

設定

Recordrange 引數設定為:

recnumber |[ start ] 結束


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

註解

Lock解除鎖定 語句是用於多個進程可能需要存取相同檔案的環境。

Lock解除鎖定 語句永遠成對使用。 鎖定解除鎖定 的引數必須完全相符。

檔案中的第一筆記錄或位元組位於位置1,第二個記錄或位元組位於位置2,依此類推。 如果只指定一筆記錄,則只會鎖定或解除鎖定該記錄。 如果您指定了一系列記錄,但省略了起始記錄 (start) ,則第一筆記錄中的所有記錄都會鎖定或解除鎖定 (end) 範圍的結尾。 使用沒有 recnumber鎖定 會鎖定整個檔案;使用 解除鎖定 但沒有 recnumber 會解除鎖定整個檔案。

如果檔案已開啟以進行序輸入或輸出, 鎖定解除鎖定 會影響整個檔案,不論 startend 所指定的範圍為何。

重要

請務必在關閉檔案或退出程式之前,以 解除鎖定 的語句移除所有鎖定。 無法移除鎖定會產生無法預期的結果。

範例

本範例說明如何使用 Lock解除鎖定 語句。 當修改記錄時,其他處理常式對該記錄的存取會遭到拒絕。 本範例假設您的檔案 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 支援與意見反應