"Error en tiempo de ejecución '3709'" al escribir una gran cantidad de texto en un campo Memo que contiene un índice en Access
Moderado: requiere aptitudes básicas de macro, codificación e interoperabilidad.
Este artículo se aplica a un archivo de base de datos de Microsoft Access .mdb o .accdb.
Síntomas
En una base de datos de Microsoft Access, cuando se crea un campo Memo que incluye un índice o se crea un nombre de campo que incluye el texto indexado automáticamente, no se puede escribir el texto que incluye más de 3450 caracteres aproximadamente en el campo. Cuando intenta escribir más texto en el campo o intenta editar los datos existentes, recibe el siguiente mensaje de error:
Run-time error '3709':
The search key not found in any record.
Solución
Si debe escribir una gran cantidad de texto en el campo Memo, elimine el índice del campo Memo. Para hacerlo, siga estos pasos:
Abra la tabla con el campo Memo en la vista Diseño.
En el menú Ver, haga clic en Índices.
Nota En Microsoft Office Access 2007, haga clic en la pestaña Diseño y, a continuación, haga clic en Índices en el grupo Mostrar u ocultar .
Haga clic en el índice del campo Memo y, a continuación, elimínelo.
Estado
Microsoft ha confirmado que se trata de un problema en los productos de Microsoft que aparecen al principio de este artículo.
Más información
Este comportamiento no se produce en las versiones de Microsoft Access anteriores a Microsoft Access 2000 porque los campos Memo no se pudieron indexar en Jet 3.5 y versiones anteriores.
Pasos para reproducir el comportamiento en Access 2003
En una base de datos nueva, cree una nueva tabla con las siguientes propiedades y guárdela como Table1:
Table: Table1 ------------------------ Field Name: Id Data Type: AutoNumber Primary Key Field Name: MyCode Data Type: Memo
Agregue el registro siguiente a la tabla Table1:
Id MyCode ------------------------------------ 1 This is the Memo test data
Copie la siguiente instrucción SQL, péguela en una nueva consulta en la vista SQL y, a continuación, guarde la consulta como query1:
UPDATE Table1 SET Table1.MyCode = [MyCode] & " " & [MyCode];
Cree el módulo siguiente y guárdelo en 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
Coloque el puntero para que esté en el procedimiento. Presione F5 para que se ejecute el código.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de