Lock, Unlock 陳述式
控制其他進程對使用 Open 語句開啟之檔案之所有或部分的存取。
語法
Lock [ # ] filenumber, [ recordrange ] . . .Unlock [ # ] filenumber, [ recordrange ]
Lock 和 Unlock 語句語法包含下列部分:
部分 | 描述 |
---|---|
filenumber | 必要。 任何有效的檔案編號。 |
recordrange | 選用。 要鎖定或解除鎖定的記錄範圍。 |
設定
recordrange 自變數設定如下:
recnumber |[ start ]結束
設定 | 描述 |
---|---|
recnumber | (開始鎖定或解除鎖定的二進位模式檔案 (隨機模式檔案) 或位元組編號) 記錄編號。 |
start | 要鎖定或解除鎖定的第一筆記錄或位元組數目。 |
end | 要鎖定或解除鎖定的最後一筆記錄或位元組數目。 |
註解
Lock 和 Unlock 語句會在數個進程可能需要存取相同檔案的環境中使用。
Lock 和 Unlock 語句一律會成對使用。 [鎖定] 和 [解除鎖定] 的自變數必須完全相符。
檔案中的第一筆記錄或位元組位於位置 1,第二筆記錄或位元組位於位置 2,依此類推。 如果您只指定一筆記錄,則只會鎖定或解除鎖定該記錄。 如果您指定記錄範圍並省略開始記錄 (開始) ,則從第一筆記錄到範圍結尾的所有記錄 (結束) 都會鎖定或解除鎖定。 使用 [不 含 矩號 的鎖定] 會鎖定整個檔案;使用 解除鎖定 而不 使用 recnumber 可解除鎖定整個檔案。
如果檔案已針對循序輸入或輸出開啟, 鎖定 和 解除 鎖定會影響整個檔案,而不論 start 和 end 指定的範圍為何。
重要事項
關閉檔案或結束程式之前,請務必先移除 Unlock 語句的所有 鎖定。 無法移除鎖定會產生無法預期的結果。
範例
此範例說明Lock和Unlock語句的使用方式。 當記錄正在修改時,其他進程對記錄的存取會遭到拒絕。 這個範例假設 是一個檔案, 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 支援與意見反應。