Opmerking: De functie, methode, object of eigenschap die in dit onderwerp wordt beschreven, is uitgeschakeld als de Microsoft Jet Expression-service wordt uitgevoerd in de sandboxmodus, waardoor mogelijk onveilige expressies niet kunnen worden geëvalueerd. Voor meer informatie over de sandbox-modus zoekt u naar 'sandbox-modus' in de Help.
Deze functie retourneert een long die de huidige lees-/schrijfpositie in een bestand opgeeft dat is geopend met de instructie Open.
Syntaxis
Seek( bestandsnummer )
Het vereiste argument bestandsnummer is een geheel getal met een geldige bestandsnummer.
Opmerkingen
Seek retourneert een waarde tussen 1 en 2.147.483.647 (gelijk aan 2^31 – 1), inclusief.
In het volgende artikel worden de retourwaarden voor elke toegangsmodus voor bestanden beschreven.
Modus | Retourwaarde |
---|---|
Willekeurig |
Nummer van de volgende record gelezen of geschreven |
Binair,
|
De bytepositie waarop de volgende bewerking wordt uitgevoerd. De eerste byte in een bestand staat op positie 1, de tweede byte op positie 2, en meer. |
Voorbeeld
Opmerking: In de volgende voorbeelden wordt het gebruik van deze functie in een VBA-module (Visual Basic for Applications) toegelicht. Meer informatie over het werken met VBA vindt u door in de vervolgkeuzelijst naast Zoeken de optie Referentie voor ontwikkelaars te selecteren en een of meer termen in het zoekvenster te typen.
In dit voorbeeld wordt de functie Seek gebruikt om de huidige bestandspositie op te vragen. In het voorbeeld wordt ervan TESTFILE een bestand is met records van het door de gebruiker gedefinieerde type Record.
Type Record ' Define user-defined type.
ID As Integer
Name As String * 20
End Type
Voor bestanden die zijn geopend in de modus Willekeurige modus, wordt het nummer van de volgende record als retourneert.
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.
Voor bestanden die zijn geopend in andere modi dan de willekeurige modus, retourneert Seek de bytepositie waarop de volgende bewerking wordt uitgevoerd. Stel TESTFILE een bestand is met een paar regels tekst.
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.