Propiedad Form. Bookmark (Access)Form.Bookmark property (Access)

La propiedad Bookmark se puede usar con formularios para establecer un marcador que identifique inequívocamente un registro determinado en la tabla, consulta o instrucción SQL subyacente del formulario.You can use the Bookmark property with forms to set a bookmark that uniquely identifies a particular record in the form's underlying table, query, or SQL statement. Variante de lectura y escritura.Read/write Variant.

SintaxisSyntax

expresión. Marcadorexpression.Bookmark

expresión Variable que representa un objeto Form.expression A variable that represents a Form object.

ComentariosRemarks

Nota

La propiedad Bookmark del formulario se obtiene o establece de forma independiente desde la propiedad Bookmark de ADO o la propiedad Bookmark de DAO de la tabla o consulta base.You get or set the form's Bookmark property separately from the ADO Bookmark or DAO Bookmark property of the underlying table or query.

Cuando se abre un formulario dependiente en vista Formulario, se asigna a cada registro un marcador único.When a bound form is opened in Form view, each record is assigned a unique bookmark. En Visual Basic, se puede guardar el marcador del registro actual asignando el valor de la propiedad Bookmark del formulario a una variable de cadena.In Visual Basic, you can save the bookmark for the current record by assigning the value of the form's Bookmark property to a string variable. Para volver a un registro guardado después de ir a un registro diferente, establezca la propiedad Bookmark del formulario en el valor de la variable de cadena guardada.To return to a saved record after moving to a different record, set the form's Bookmark property to the value of the saved string variable. Puede usar la función StrComp para comparar un Variant o variable de cadena con un marcador, o cuando compare un marcador con otro.You can use the StrComp function to compare a Variant or string variable to a bookmark, or when comparing a bookmark against a bookmark. El tercer argumento de la función StrComp debe establecerse en el valor cero.The third argument for the StrComp function must be set to a value of zero.

Nota

Los marcadores no se guardan con los registros que representan y solo son válidos mientras el formulario está abierto.Bookmarks are not saved with the records that they represent and are only valid while the form is open. Microsoft Access los vuelve a crear cada vez que se abre un formulario dependiente.They are re-created by Microsoft Access each time a bound form is opened.

No hay ningún límite en el número de marcadores que se pueden guardar si cada uno de ellos se guarda con una variable de cadena única.There is no limit to the number of bookmarks that you can save if each is saved with a unique string variable.

La propiedad Bookmark solo está disponible para el registro activo del formulario.The Bookmark property is only available for the form's current record. Para guardar un marcador para un registro diferente al registro activo, vaya al registro que quiera y asigne el valor de la propiedad Bookmark a una variable de cadena que identifique este registro.To save a bookmark for a record other than the current record, move to the desired record and assign the value of the Bookmark property to a string variable that identifies this record.

Puede usar marcadores en cualquier formulario que se base en su totalidad en tablas de Access.You can use bookmarks in any form that is based entirely on Access tables. Pero otros productos de base de datos pueden no admitir los marcadores.However, other database products may not support bookmarks. Por ejemplo, no se pueden utilizar marcadores en un formulario basado en una tabla vinculada que no tenga un índice principal.For example, you can't use bookmarks in a form based on a linked table that has no primary index.

Volver a consultar un formulario invalida los marcadores que se hayan establecido en los registros del formulario.Requerying a form invalidates any bookmarks set on records in the form. Sin embargo, la opción Actualizar del menú registros no afecta a los marcadores.However, choosing Refresh on the Records menu doesn't affect bookmarks.

Debido a que Access crea un marcador único para cada registro del conjunto de registros de un formulario cuando se abre un formulario, el marcador de un formulario no funciona en otro conjunto de registros, incluso cuando los dos conjuntos de registros se basan en la misma tabla, consulta o instrucción SQL.Because Access creates a unique bookmark for each record in a form's recordset when a form is opened, a form's bookmark will not work on another recordset, even when the two recordsets are based on the same table, query, or SQL statement. Por ejemplo, supongamos que abre un formulario enlazado a la tabla clientes .For example, suppose you open a form bound to the Customers table. Si abre la tabla clientes con Visual Basic y, a continuación, usa el método ADO Seek o el método DAO Seek para localizar un registro específico en la tabla, no puede establecer la propiedad Bookmark del formulario en el registro de tabla actual.If you open the Customers table by using Visual Basic, and then use the ADO Seek method or DAO Seek method to locate a specific record in the table, you can't set the form's Bookmark property to the current table record. Para realizar este tipo de operación, puede usar el método Find de ADO o el método Find de DAO con la propiedad RecordsetClone del formulario.To perform this kind of operation, you can use the ADO Find method or DAO Find method with the form's RecordsetClone property.

Se produce un error si se establece la propiedad Bookmark en una variable de cadena y luego se intenta volver a ese registro después de borrarlo.An error occurs if you set the Bookmark property to a string variable and then try to return to that record after the record has been deleted.

El valor de la propiedad Bookmark no es el mismo que el número de registro.The value of the Bookmark property isn't the same as a record number.

EjemploExample

Para probar el ejemplo siguiente con la base de datos de ejemplo Northwind, debe agregar un botón de comando denominado cmdFindContactName al formulario proveedores y, a continuación, agregar el código siguiente al evento click del botón.To test the following example with the Northwind sample database, you need to add a command button named cmdFindContactName to the Suppliers form, and then add the following code to the button's Click event. Cuando el usuario hace clic en el botón, se le pide que escriba una parte del nombre de contacto que se va a buscar.When the button is clicked, the user is asked to enter a portion of the contact name to find. Si se encuentra el nombre, la propiedad Bookmark del formulario se establece en la propiedad Bookmark de DAO del objeto Recordset, lo que mueve el registro actual del formulario al nombre encontrado.If the name is found, the form's Bookmark property is set to the Recordset object's DAO Bookmark property, which moves the form's current record to the found name.

Private Sub cmdFindContactName_Click() 
 
 Dim rst As DAO.Recordset 
 Dim strCriteria As String 
 
 strCriteria = "[ContactName] Like '*" & InputBox("Enter the " _ 
 & "first few letters of the name to find") & "*'" 
 
 Set rst = Me.RecordsetClone 
 rst.FindFirst strCriteria 
 If rst.NoMatch Then 
 MsgBox "No entry found.", vbInformation 
 Else 
 Me.Bookmark = rst.Bookmark 
 End If 
 
 Set rst = Nothing 
 
End Sub

Soporte técnico y comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.