Seek 函數

Applies To
Access for Microsoft 365 Access 2021 Access 2019 Access 2016

注意

如果 Microsoft Jet 運算式服務以沙箱模式執行,則會停用本主題中所述的函數、方法、物件或屬性,這會防止評估可能不安全的運算式。 如需沙箱模式的詳細資訊,請在說明中搜尋「沙箱模式」。

傳回 Long,指定使用 Open 陳述式開啟的檔案內目前的讀取/寫入位置。

語法

尋找 (檔案編號)

必要的 filenumber引數是包含有效檔案號碼的整數。

註解

搜尋會 傳回介於 1 到 2,147,483,647 之間的值 (相當於 2^31 – 1) (含)。

下列說明每個檔案存取模式的傳回值。

眾數 傳回值
隨機 下一筆讀取或寫入記錄的數目
Binary
輸出
附加
輸入
下一個作業發生的位元組位置。 檔案中的第一個位元組位於位置 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

針對以隨機模式開啟的檔案, 搜尋 會傳回下一筆記錄的編號。

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.

針對以隨機模式以外的模式開啟的檔案, 搜尋 會傳回下一個作業發生的位元組位置。 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.