¿Cómo corregir el error 3159 de MS Access: “Marcador no válido”?
Resumen: Los usuarios de MS Access pueden encontrar el error "No es un marcador válido" cuando se utiliza el conjunto de registros en los proyectos de VBA. Este blog discutirá las razones detrás de "MS Access error 3159: No es un marcador válido" y las soluciones para resolverlo. Usted también encontrará acerca de una herramienta de reparación de base de datos Access que puede ayudar a solucionar el error si se produce debido a los registros dañados en la base de datos.
El error de MS Access “No es un marcador válido” suele producirse cuando se establece la propiedad de marcador de un conjunto de registros con una cadena no válida. La propiedad de marcador se utiliza para acceder/obtener registros en tablas de bases de datos.
El error aparece así:
Hay varias razones que pueden provocar el error “No es un marcador válido” en Microsoft Access, como por ejemplo:
- Cuando se establece una propiedad Recordset.bookmark (DAO) con una cadena no válida.
- Cuando su base de datos Access está dañada.
- Cuando intentas marcar una cadena que no se ha guardado antes.
Métodos para corregir el error 3159 de MS Access: No es un marcador válido
Puede probar las siguientes soluciones para resolver el error 3159 de MS Access.
Método 1: Reproducir el error
Si obtiene el error “Not a valid bookmark” debido a una cadena inválida en la propiedad bookmark, puede reproducir el error para encontrar y corregir la cadena. Para ello, utilice el siguiente código en el módulo:
Option Compare Database
Private Sub Command0_Click()
Dim rst As Recordset
Dim str As String
Error 3159 Not a valid bookmark.
Set rst = CurrentDb.OpenRecordset(“Orders”, dbOpenDynaset)
str = rst(0)
rst.Bookmark = str
End Sub
En la ventana de mensaje de error, haga clic en la opción Depurar y, a continuación,
- Utiliza la cadena correcta.
- Actualiza la cadena y guárdala para más tarde.
Método 2: Utilizar el comando de descompilación
Cuando el código VBA arroja un error o se comporta de forma extraña, puede utilizar el comando Descompilar. Este comando se utiliza para corregir errores relacionados con VBA. Para utilizar el comando Descompilar, siga estos pasos:
- Identifique la ruta de su Microsoft Access. Para ello, puede buscar su programa Access desde el Explorador de Windows.
- Abra la ventana Símbolo del sistema escribiendo cmd en la utilidad Ejecutar.
- Haga clic en Aceptar.
- Aparece la ventana cmd.exe.
- Introduzca el siguiente comando Descompilar.
C:Archivos de programa (x86)\Microsoft Office\root\Office16\MSACCESS.EXE /decompilar
- Ahora, abra la base de datos MS Access.
- Haga clic en Crear > Módulo.
- Vaya a Depurar > Compilar.
- Haz clic en Archivo y luego en Guardar.
Método 3: Reparar la base de datos
A veces, el error 3159 de MS Access puede producirse cuando la base de datos de MS está dañada. Puede utilizar la utilidad integrada – Compactar y reparar – para reparar la base de datos dañada o corrupta. Para ejecutar esta herramienta, siga estos pasos:
- Abra Microsoft Access.
- Vaya a Archivo > Información > Compactar y reparar base de datos.
- Seleccione el archivo de base de datos Access dañado y haga clic en Aceptar.
Ahora, compruebe si el problema se ha resuelto. Si el error persiste o la utilidad “Compactar y reparar no funciona”, entonces puede utilizar una herramienta profesional de reparación de Access, como Stellar Repair for Access. Esta herramienta está recomendada por expertos certificados en bases de datos para reparar archivos corruptos de bases de datos Access (.ACCDB y .MDB). Le ayuda a recuperar todos los objetos de la base de datos, incluyendo consultas, informes, tablas, informes, etc. La herramienta es compatible con Office 365, Access 2019, 2016, 2013 y versiones inferiores.
Cierre
El error 3159 de MS Access se produce cuando se trabaja con recordsets en código VBA. Suele producirse cuando se intenta utilizar una cadena no válida al establecer la propiedad Recordset.Bookmark. Puede solucionar el problema reproduciendo el error y corrigiendo el valor de la cadena. Si la base de datos está dañada, puede utilizar la herramienta Compactar y reparar de MS Access. Si esta utilidad falla, puede probar Stellar Repair for Access para reparar los archivos de base de datos de Access corruptos. Puede reparar archivos de base de datos gravemente dañados y recuperar todos los datos sin cambiar su estructura original. Es una herramienta avanzada que puede ayudarle a solucionar el error 3159 de MS o cualquier otro error relacionado con la corrupción.