Seek (función)

Se aplica a
Access para Microsoft 365 Access 2021 Access 2019 Access 2016

Nota

La función, el método, el objeto o la propiedad descritos en este tema se deshabilitan si el servicio de expresiones de Microsoft Jet se ejecuta en modo de espacio aislado, lo que impide la evaluación de expresiones potencialmente inseguras. Para obtener más información sobre el modo de espacio aislado, busque "modo de espacio aislado" en la Ayuda.

Devuelve un Long que especifica la posición actual de lectura y escritura dentro de un archivo abierto con la instrucción Open .

Sintaxis

Seek(filenumber)

El argumento filenumberrequerido es un entero que contiene un número de archivo válido.

Observaciones

Buscar devuelve un valor entre 1 y 2 147 483 647 (equivalente a 2^31 – 1), ambos incluidos.

A continuación se describen los valores devueltos para cada modo de acceso a archivos.

Moda Valor devuelto
Aleatorio Número del siguiente registro leído o escrito
Binario,
Salida,
Anexar,
Entrada
Posición de bytes en la que tiene lugar la siguiente operación. El primer byte de un archivo está en la posición 1, el segundo byte está en la posición 2, y así sucesivamente.

    

Ejemplo

Nota

Los ejemplos siguientes muestran el uso de esta función en un módulo de Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, seleccione referencia para desarrolladores en la lista desplegable situada junto a búsqueda y escriba uno o varios términos en el cuadro de búsqueda.

En este ejemplo se utiliza la función Seek para devolver la posición actual del archivo. En el ejemplo se supone TESTFILE que es un archivo que contiene registros del tipo Recorddefinido por el usuario .

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

Para los archivos abiertos en modo aleatorio, la búsqueda devuelve el número del registro siguiente.

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.

Para los archivos abiertos en modos distintos del modo aleatorio, Seek devuelve la posición de bytes en la que tiene lugar la siguiente operación. Supongamos TESTFILE que es un archivo que contiene unas pocas líneas de texto.

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.