Lock-, Unlock-AnweisungenLock, Unlock statements

Steuert den Zugriff anderer Prozesse auf ganz oder teilweise eine Datei, die mithilfe der Open -Anweisung geöffnet wurde.Controls access by other processes to all or part of a file opened by using the Open statement.

SyntaxSyntax

Sperre [ # ] FileNumber, [ recordrange ] ...Lock [ # ] filenumber, [ recordrange ] . . .
Entsperren [ # ] FileNumber, [ recordrange ]Unlock [ # ] filenumber, [ recordrange ]


Die Syntax für die Lock- und Unlock-Anweisung weist folgende Teile auf:The Lock and Unlock statement syntax has these parts:

TeilPart BeschreibungDescription
filenumberfilenumber Erforderlich.Required. Eine gültige Dateinummer.Any valid file number.
recordrangerecordrange Optional.Optional. Der Bereich von Datensätzen, die gesperrt oder entsperrt werden sollen.The range of records to lock or unlock.

EinstellungenSettings

Die recordrange - Argument Einstellungen lauten wie folgt:The recordrange argument settings are:

RecNumber | [ Start ] Zur Enderecnumber | [ start ] To end


EinstellungSetting BeschreibungDescription
RecNumberrecnumber Datensatznummer (Dateien nach Zufallsmodus) oder Bytenummer (Dateien nach Binärmodus), für die die Sperre eingerichtet/aufgehoben werden soll.Record number (Random mode files) or byte number (Binary mode files) at which locking or unlocking begins.
startstart Nummer des ersten Datensatzes oder Bytes, für den bzw. das die Sperre eingerichtet/aufgehoben werden soll.Number of the first record or byte to lock or unlock.
endend Nummer des letzten Datensatzes oder Bytes, für den bzw. das die Sperre eingerichtet/aufgehoben werden soll.Number of the last record or byte to lock or unlock.

HinweiseRemarks

Die Anweisungen Lock und Unlock werden in Umgebungen verwendet, in denen mehrere Prozesse auf dieselbe Datei zugreifen können.The Lock and Unlock statements are used in environments where several processes might need access to the same file.

Die Lock - und Unlock -Anweisungen treten immer paarweise auf.Lock and Unlock statements are always used in pairs. Die Argumente für Lock und Unlock müssen exakt übereinstimmen.The arguments to Lock and Unlock must match exactly.

Der erste Datensatz oder das erste Byte in einer Datei beginnt an Position 1, der zweite Datensatz oder das zweite Byte an Position 2 usw.The first record or byte in a file is at position 1, the second record or byte is at position 2, and so on. Wenn Sie nur einen Datensatz angeben, ist nur dieser Datensatz gesperrt oder entsperrt.If you specify just one record, only that record is locked or unlocked. Wenn Sie einen Bereich von Datensätzen angeben und einen Startdatensatz (Start) weglassen, werden alle Datensätze vom ersten Datensatz bis zum Ende des Bereichs (Ende) gesperrt oder entsperrt.If you specify a range of records and omit a starting record (start), all records from the first record to the end of the range (end) are locked or unlocked. Verwenden von Lock ohne RecNumber sperrt die gesamte Datei; Wenn Sie Unlock ohne RecNumber verwenden, wird die gesamte Datei entsperrt.Using Lock without recnumber locks the entire file; using Unlock without recnumber unlocks the entire file.

Wenn die Datei für sequenzielle Ein- oder Ausgaben geöffnet wurde, beziehen sich Lock und Unlock immer auf die gesamte Datei, auch wenn mit start und end ein Bereich der Datei angegeben wurde.If the file has been opened for sequential input or output, Lock and Unlock affect the entire file, regardless of the range specified by start and end.

Wichtig

[!WICHTIG] Achten Sie darauf, dass alle Sperren mit einer Unlock -Anweisung aufgehoben werden, bevor Sie eine Datei schließen oder das Programm beenden.Be sure to remove all locks with an Unlock statement before closing a file or quitting your program. Wenn Sie vergessen, Sperren zu entfernen, kann dies zu unvorhersehbaren Ergebnissen führen.Failure to remove locks produces unpredictable results.

BeispielExample

In diesem Beispiel wird die Verwendung der Anweisungen Lock und Unlock veranschaulicht.This example illustrates the use of the Lock and Unlock statements. Während der Änderung eines Datensatzes ist der Zugriff durch andere Prozesse auf diesen Datensatz nicht zulässig.While a record is being modified, access by other processes to the record is denied. In diesem Beispiel wird TESTFILE davon ausgegangen, dass es sich um eine Datei mit Recordfünf Datensätzen des benutzerdefinierten Typs handelt.This example assumes that TESTFILE is a file containing five records of the user-defined type 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. 

Siehe auchSee also

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.