Seek 函数

应用对象
Microsoft 365 专属 Access Access 2021 Access 2019 Access 2016

注意

如果 Microsoft Jet 表达式服务在沙盒模式下运行,则禁用本主题中所述的函数、方法、对象或属性,从而阻止计算潜在的不安全表达式。 有关沙盒模式的详细信息,请在“帮助”中搜索“沙盒模式”。

返回一个 Long 类型的值,指定使用 Open 语句打开的文件中的当前读/写位置。

语法

查找 (filenumber)

所需的 filenumber参数是包含有效文件编号的 Integer。

备注

Seek 返回一个值 1 到 2,147,483,647 (等效于 2^31 – 1) (含)。

下面介绍了每个文件访问模式的返回值。

众数 返回值
随机 读取或写入的下一条记录的数目
二进制
输出
Append
输入
发生下一个操作的字节位置。 文件中的第一个字节位于位置 1,第二个字节位于位置 2,依此而行。

    

示例

注意

下面的示例演示了如何在 Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请在搜索旁边的下拉列表中选择“开发人员参考”,并在搜索框中输入一个或多个术语。

此示例使用 Seek 函数返回当前文件位置。 该示例假定 TESTFILE 是一个包含用户定义类型 Record的记录的文件。

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

对于在随机模式下打开的文件, Seek 返回下一条记录的数目。

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.

对于以随机模式以外的模式打开的文件, Seek 返回下一个操作的字节位置。 假设 TESTFILE 是包含几行文本的文件。

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.