Funcția Seek

Se aplică la
Access pentru Microsoft 365 Access 2021 Access 2019 Access 2016

Notă

Funcția, metoda, obiectul sau proprietatea descrise în acest subiect este dezactivată dacă Serviciul de expresii Microsoft Jet rulează în modul sandbox, ceea ce împiedică evaluarea expresiilor potențial nesigure. Pentru mai multe informații despre modul sandbox, căutați "modul sandbox" în Ajutor.

Returnează o valoare Lung care specifică poziția curentă citire/scriere dintr-un fișier deschis utilizând instrucțiunea Open .

Sintaxă

Căutare(număr fișier)

Argumentul număr fișiernecesar este un număr întreg care conține un număr de fișier valid.

Observații

Seek returnează o valoare între 1 și 2.147.483.647 (echivalent cu 2^31 – 1), inclusiv.

Următoarele descriu valorile returnate pentru fiecare mod de acces la fișiere.

Mod Valoarea returnată
Aleator Numărul următoarei înregistrări citite sau scrise
Binar,
Ieșire,
Adăugare,
Intrare
Poziție octet la care are loc următoarea operațiune. Primul octet dintr-un fișier este la poziția 1, al doilea octet este la poziția 2 și așa mai departe.

    

Exemplu

Notă

Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, selectați Referințe pentru dezvoltatori în lista verticală de lângă Căutare și introduceți unul sau mai mulți termeni în caseta de căutare.

Acest exemplu utilizează funcția Seek pentru a returna poziția curentă a fișierului. Exemplul presupune că TESTFILE este un fișier care conține înregistrări de tipul Recorddefinit de utilizator.

Type Record    ' Define user-defined type.
    ID As Integer
    Name As String * 20
End Type

Pentru fișierele deschise în modul aleator, Seek returnează numărul următoarei înregistrări.

Dim MyRecord As Record    ' Declare variable.
Open "TESTFILE" For Random As #1 Len = Len(MyRecord)
Do While Not EOF(1)    ' Loop until end of file.
    Get #1, , MyRecord    ' Read next record.
    ' Print record number to the Immediate window.
    Debug.Print Seek(1)    
Loop
Close #1    ' Close file.

Pentru fișierele deschise în alte moduri decât modul aleator, Seek returnează poziția octet în care are loc următoarea operațiune. Să presupunem că TESTFILE este un fișier care conține câteva linii de text.

Dim MyChar
Open "TESTFILE" For Input As #1 ' Open file for reading.
Do While Not EOF(1) ' Loop until end of file.
    MyChar = Input(1, #1) ' Read next character of data.
    ' Print byte position to the Immediate window. 
    Debug.Print Seek(1) 
Loop
Close #1    ' Close file.