Compartir a través de


Error "Demasiados campos definidos" al guardar una tabla en Access

Moderado: requiere aptitudes básicas de macro, codificación e interoperabilidad.

Este artículo solo se aplica a una base de datos de Microsoft Access (.mdb).

Síntomas

Al guardar una tabla después de agregar un nuevo campo o cambiar las propiedades de un campo existente, recibe el siguiente mensaje de error:

Demasiados campos definidos.

Este mensaje va seguido de:

Se encontraron errores durante el guardado. No se cambiaron los tipos de datos.

Recibe estos mensajes aunque tenga 255 o menos campos definidos en la tabla.

NOTA También recibirá este mensaje si agrega o modifica campos en un informe basado en una tabla que tiene demasiados campos.

Causa

El número de columnas internas que Usa Microsoft Access para realizar un seguimiento del número de campos de la tabla ha alcanzado los 255, aunque puede tener menos de 255 campos en la tabla. Esto puede ocurrir porque Access no cambia el recuento de columnas internas al eliminar un campo. Access también crea un nuevo campo (aumentando el número de columnas internas en 1) para cada campo cuyas propiedades modifique.

Solución

Para liberar el recuento de columnas internas para los campos eliminados o para los campos cuyas propiedades modifique, realice una de las siguientes acciones:

  • Compactar la base de datos. Para ello, seleccione Utilidades de base de datos en el menú Herramientas y, a continuación, haga clic en Compactar y reparar base de datos.

  • Cree una nueva copia de la tabla. Para hacerlo, siga estos pasos:

    1. Tome nota de las relaciones con la tabla.
    2. Seleccione la tabla.
    3. En el menú Archivo, haga clic en Guardar como.
    4. En el cuadro Guardar tabla 'nombre de tabla' Para, escriba un nombre nuevo y, a continuación, haga clic en Aceptar.
    5. Seleccione la misma tabla que seleccionó en el paso 2 y presione ELIMINAR.
    6. Cambie el nombre de la tabla que guardó en el paso 3 al nombre de la tabla original.
    7. Vuelva a establecer las relaciones con la nueva tabla.

Más información

En Access, puede definir hasta 255 campos en una tabla. Si crea 255 campos y, a continuación, elimina 10, Access no libera los campos del recuento de columnas interno. Además, para cada campo cuyas propiedades modifique, Access crea un nuevo campo y no libera el campo original del recuento de columnas interno.

Pasos para reproducir el comportamiento

Nota:

En el código de ejemplo de este artículo se usan objetos de Microsoft Data Access. Para que este código se ejecute correctamente, debe hacer referencia a la biblioteca de objetos de Microsoft DAO 3.6. Para ello, haga clic en Referencias en el menú Herramientas del Editor de Visual Basic y asegúrese de que la casilla Biblioteca de objetos de Microsoft DAO 3.6 esté activada.

  1. Cree el siguiente código de Visual Basic para Aplicaciones para crear una nueva tabla con 255 campos:
' ****************************************************************
' Declarations section of the module
' ****************************************************************
    
Option Compare Database
    Option Explicit
    
    ' ****************************************************************
    ' The Fill_Table() function creates a table in the current database
    ' named Field Test with 255 fields, each of which has a Text data
    ' type and a size of one character.
    ' ****************************************************************
    
    Function Fill_Table()
    
    Dim mydb As DAO.Database
       Dim tbl As DAO.TableDef
       Dim fld As DAO.Field
       Dim i As Integer
    
    Set mydb = CurrentDb()
       Set tbl = mydb.CreateTableDef("Field Test")
          For i = 0 To 254
             Set fld = tbl.CreateField("Field" & CStr(i + 1))
             fld.Type = dbText
             fld.Size = 1
             tbl.Fields.Append fld
          Next i
          mydb.TableDefs.Append tbl
    
    End Function
  1. Escriba la siguiente línea en la ventana Inmediato para ejecutar la función y crear la tabla:

    Fill_Table
    
  2. Vea la tabla Prueba de campo en la vista Diseño y, a continuación, elimine el último campo para que solo haya 254 campos definidos en la tabla.

  3. Vuelva a agregar el campo e intente guardar la tabla. Tenga en cuenta que recibe los siguientes mensajes de error:

    Too many fields defined.
    
    Errors were encountered during the save operation. Fields were not added. Properties were not updated.
    

Referencias

Para obtener más información sobre las especificaciones de la base de datos, haga clic en Ayuda de Microsoft Access en el menú Ayuda, escriba Especificaciones de Acceso en el Asistente para Office o en el Asistente para respuestas y, a continuación, haga clic en Buscar para ver los temas devueltos.