« Erreur d’exécution '3709' » lorsque vous entrez une grande quantité de texte dans un champ Mémo qui contient un index dans Access
Modéré : nécessite des compétences de base en macro, en codage et en interopérabilité.
Cet article s’applique à un fichier de base de données Microsoft Access .MDB ou .ACCDB.
Symptômes
Dans une base de données Microsoft Access, lorsque vous créez un champ Mémo qui inclut un index ou que vous créez un nom de champ qui inclut le texte indexé automatiquement, vous ne pouvez pas entrer le texte qui comprend plus de 3450 caractères environ dans le champ. Lorsque vous essayez d’entrer plus de texte dans le champ ou de modifier les données existantes, le message d’erreur suivant s’affiche :
Run-time error '3709':
The search key not found in any record.
Résolution
Si vous devez entrer une grande quantité de texte dans le champ Mémo, supprimez l’index du champ Mémo. Pour ce faire, procédez comme suit :
Ouvrez la table avec le champ Mémo en mode Création.
Dans le menu Affichage, cliquez sur Index.
Note Dans Microsoft Office Access 2007, cliquez sur l’onglet Création , puis sur Index dans le groupe Afficher/Masquer .
Cliquez sur l’index du champ Mémo, puis supprimez-le.
Statut
Microsoft a confirmé qu’il s’agit d’un problème dans les produits Microsoft répertoriés au début de cet article.
Informations supplémentaires
Ce comportement ne se produit pas dans les versions de Microsoft Access antérieures à Microsoft Access 2000, car les champs Mémo n’ont pas pu être indexés dans Jet 3.5 et versions antérieures.
Étapes pour reproduire le comportement dans Access 2003
Dans une nouvelle base de données, créez une table avec les propriétés suivantes, puis enregistrez-la sous Table1 :
Table: Table1 ------------------------ Field Name: Id Data Type: AutoNumber Primary Key Field Name: MyCode Data Type: Memo
Ajoutez l’enregistrement suivant à la table Table1 :
Id MyCode ------------------------------------ 1 This is the Memo test data
Copiez l’instruction SQL suivante, collez-la dans une nouvelle requête en mode SQL, puis enregistrez la requête en tant que query1 :
UPDATE Table1 SET Table1.MyCode = [MyCode] & " " & [MyCode] ;
Créez le module suivant, puis enregistrez-le Module1 :
Sub TestMemoUpdate() Dim i As Integer Docmd.setwarnings false For i = 1 To 10 Docmd.openquery "Query1" Next i Docmd.setwarnings true End Sub
Placez votre pointeur afin qu’il se trouve dans la procédure. Appuyez sur F5 pour exécuter le code.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour