Summary: les utilisateurs de MS Access peuvent rencontrer l'erreur "Not a valid bookmark" lorsqu'ils utilisent le jeu d'enregistrements dans des projets VBA. Ce blog aborde les raisons de l'erreur "MS Access error 3159 : Not a valid bookmark" et les solutions pour la résoudre. Vous découvrirez également un outil de réparation de base de données Access qui peut aider à corriger l'erreur si elle se produit en raison d'enregistrements corrompus dans la base de données.
Dans MS Access “erreur signet non défini” se produit généralement lorsque vous définissez la propriété bookmark d’un jeu d’enregistrements avec une chaîne non valide. La propriété signet est utilisée pour accéder à des enregistrements dans des tables de base de données.
L’erreur se présente comme suit :
L’erreur signet non défini dans Microsoft Access peut se produire pour diverses raisons :
- Lorsque vous définissez la propriété Recordset.bookmark (DAO) avec une chaîne de caractères non valide.
- Lorsque votre base de données Access est corrompue.
- Lorsque vous essayez de mettre en signet une chaîne qui n’a pas été sauvegardée auparavant.
Méthodes pour corriger l’erreur MS Access 3159 : Signet non défini
Vous pouvez essayer les solutions suivantes pour résoudre l’erreur MS Access 3159.
Méthode 1 : Reproduire l’erreur
Si vous obtenez l’erreur signet non défini en raison d’une chaîne invalide dans la propriété bookmark, vous pouvez reproduire l’erreur pour trouver et corriger la chaîne. Pour cela, utilisez le code ci-dessous dans le module :
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
Dans la fenêtre du message d’erreur, cliquez sur l’option Déboguer, puis sur ,
- Utilisez la chaîne correcte.
- Mettre à jour la chaîne et l’enregistrer pour plus tard.
Méthode 2 : Utiliser la commande de décompilation
Lorsque le code VBA génère une erreur ou se comporte de manière étrange, vous pouvez utiliser la commande Decompile. Cette commande permet de corriger les erreurs liées à VBA. Pour utiliser la commande Decompile, procédez comme suit :
- Identifiez le chemin d’accès de votre Microsoft Access. Pour cela, vous pouvez rechercher votre programme Access à partir de l’explorateur Windows.
- Ouvrez la fenêtre de l‘Invite de commande en tapant cmd dans l’utilitaire Exécuter.
- Cliquez sur OK.
- La fenêtre cmd.exe s’affiche.
- Entrez la commande de décompilation suivante.
C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE /decompiler
- Ouvrez maintenant la base de données MS Access.
- Cliquez sur Créer > Module.
- Allez dans Debug > Compile.
- Cliquez sur Fichier, puis sur Enregistrer.
Méthode 3 : Réparer la base de données
Parfois, l’erreur MS Access 3159 peut se produire lorsque la base de données MS est corrompue. Vous pouvez utiliser l’utilitaire intégré – Compact and Repair – pour réparer la base de données endommagée ou corrompue. Pour exécuter cet outil, procédez comme suit :
- Ouvrez Microsoft Access.
- Allez dans Fichier > Info > Compacter et réparer la base de données.
- Sélectionnez le fichier de base de données Access corrompu, puis cliquez sur OK.
Vérifiez maintenant si le problème est résolu. Si l’erreur persiste ou si l’utilitaire Compact and Repair ne fonctionne pas, vous pouvez utiliser un outil de réparation professionnel pour Access, tel que Stellar Repair for Access. Cet outil est recommandé par des experts certifiés en bases de données pour réparer les fichiers de base de données Access (.ACCDB et .MDB) corrompus. Il vous aide à récupérer tous les objets de la base de données, y compris les requêtes, les rapports, les tables, les rapports, etc. L’outil est compatible avec Office 365, Access 2019, 2016, 2013 et les versions inférieures.
Fermeture
L’erreur MS Access 3159 se produit lorsque vous travaillez avec des jeux d’enregistrements dans le code VBA. Elle se produit généralement lorsque vous essayez d’utiliser une chaîne de caractères non valide lors de la définition de la propriété Recordset.Bookmark. Vous pouvez résoudre le problème en reproduisant l’erreur, puis en corrigeant la valeur de la chaîne. Si la base de données est corrompue, vous pouvez utiliser l’outil Compact and Repair de MS Access. Si cet utilitaire échoue, vous pouvez essayer Stellar Repair for Access pour réparer les fichiers de base de données Access corrompus. Il peut réparer les fichiers de base de données gravement corrompus et récupérer toutes les données sans modifier leur structure d’origine. Il s’agit d’un outil avancé qui peut vous aider à réparer l’erreur MS 3159 ou toute autre erreur liée à la corruption.