Consejos para solucionar problemas con errores de valores

Conseguidos de la propia web de Microsoft en su apartado dedicado a Access La información de este artículo se refiere a Microsoft Access versiones 2.0, 7.0, 97, 2000, 2002 y 2003

 

SÍNTOMAS
Principiantes: Requiere conocimientos de la interfaz del usuario en computadoras de un solo usuario. Usted puede encuentrar cualquiera de los siguientes errores de valores en un campo dentro de una tabla, una consulta, un formulario o un informe:
#Error, #Num!, #Nombre?, #Div/0!, #Borrado, o #Bloqueado
CAUSA
Microsoft Access pone un error de valor en un campo cuando no puede encontrar la información necesaria, no puede llevar a cabo la expresión o no archiva un valor dentro de los límites del campo.

 

SOLUCIÓN
Las secciones siguientes explican qué significa el error de valor e incluyen una lista con algunas de las razones por las que Microsoft Access puede mostrarlos.
 

#Error

Este valor significa que Microsoft Access no puede evaluar la expresión. Por ejemplo, usted puede haber ofrecido un argumento incorrecto o insuficiente para una función agregada (totales), utilizado una consulta de un parámetro como el dominio para una función agregada, o haber hecho una referencia circular en la expresión. Los siguientes tres ejemplos muestran las posibles causas para el valor #Error:

Función agregada:

=Davg("[Ventas]","Empeado")

En el ejemplo anterior, el nombre de la tabla debería ser "Empleado", no "Empeado".

Referencia circular: (consulta)

Nombre: [Nombre] & " " & [Apellido]

En este ejemplo, el alias Nombre es también parte de la expresión.

NOTA: En Microsoft Access 7.0 y 97, el ejemplo anterior genera el mensaje "Referencia circular debida al alias 'Nombre' en la lista de selección de definición de la consulta."

Referencia circular: (Formularios e informes)

Nombre: Nombre

OrigenDelControl: =[Nombre] & " " & [Apellido]

En el ejemplo anterior, el texto Nombre es también parte de la expresión. En una tabla o formulario, este error puede ocurrir también cuando la propiedad ValorPredeterminado para un campo o un control no es la adecuada para la propiedad TipoDeDatos o TamañoDelCampo, o cuando una expresión incluye un control de límite (bound) definido por el uso de la función Recortar() y el campo subyacente no contiene más datos. El siguiente ejemplo muestra un campo cuya propiedad ValorPredeterminado no es adecuada para la configuración TamañodeCampo:

Campo: Estado (Texto, TamañodeCampo = 2)

ValorPredeterminado: ="Mex" (3 caracteres)

 

En una consulta, este error puede ocurrir cuando el valor de un campo calculado es mayor que el permitido por la configuración de la propiedad TamañoDelCampo de ese campo. Por ejemplo, si suma o multiplica dos valores Integer y el resultado Integer es mayor que el valor permitido en un campo Integer, Microsoft Access pone el valor #Error en el campo. El siguiente ejemplo muestra un valor que es mayor de lo permitido para el campo.

Campo: Edad (Integer, valor del registro = 50)

Expr1: [Edad] * 1000

#Num!

Este error de valor significa que el valor en el campo es demasiado grande (sea positivo o negativo) para ser guardado en éste, en base a las propiedades TipoDeDatos o TamañoDelCampo del campo.

 

#Nombre? (#Name?)

Este error significa que el nombre introducido como fuente del valor en el campo es inválido. El nombre podría estar mal escrito, puede haber omitido el signo de igual (=) antes de la expresión, o la fuente misma puede haberse borrado.

El siguiente ejemplo muestra la falta de un signo igual (=) en una expresión:

OrigenDelControl: [Nombre] & " " & [Apellido]

Debería ser: =[Nombre] & " " & [Apellido]

El siguiente ejemplo muestra un nombre inválido de la propiedad OrigenDelControl:

OrigenDelControl: [Nombr] & " " & [Apellido]

Debería ser: =[Nombre] & " " & [Apellido]

 

Cuando se hace referencia a un control en un subformulario o subinforme en Microsoft Access 2.0, debe referirse a él a través del formulario o informe principal utilizando la siguiente sintaxis:

=Formularios![<NombreFormularioPrincipal>]![<NombreSubformulario>].Formulario![<NombreControl>]

También puede usar esta otra sintaxis
=Informes![<NombreInformePrincipal>]![<NombreSubinforme>].Informe![<NombreControl>]

 

<NombreFormularioPrincipal> o <NombreInformePrincipal> es el nombre del formulario o informe que contiene el subformulario o subinforme. <NombreSubformulario> o <NombreSubinforme> es el nombre del subformulario o subinforme. Note que este nombre no tiene que ser el mismo del nombre del subformulario o subinforme mismo. Para verificar el nombre, revise la propiedad Nombre en el subformulario o subinforme. <NombreControl> es el nombre del control en el subformulario o subinforme. Para verificar el nombre, revise la propiedad Nombre en el subformulario o subinforme.

NOTA: En Microsoft Access 7.0 y 97, una referencia incorrecta a un campo en un subformulario o subinforme causa #Error más que #Nombre?.

Algunas otras causas del error de valor #Nombre? son:

-Un nombre de campo en el formulario o informe que no coincida con el nombre del campo en la tabla subyacente.
-Un nombre de control que es el mismo de uno de los campos en la tabla subyacente.
-Una expresión diseñada para calcular una suma para un control que incluya una función Suma(). (La función Suma() puede ser utilizada para calcular sumas sólo en los campos, no en los controles.)

 

#Div/0!
Este valor significa que está tratando de dividir un número entre cero, ya sea de manera directa en una expresión (por ejemplo, 8/0), o utilizando el valor de un campo que equivalga a cero.
#Borrado
Este valor significa que el registro al que se hace referencia ha sido borrado.
#Bloqueado

Este valor puede ser causado por alguna de las siguientes situaciones:

-Otro usuario puso un bloqueo al registro y Microsoft Access no puede leer los datos.
-Hay dos o más instancias de Microsoft Access ejecutándose en la misma computadora. Microsoft Access considera a cada copia abierta de la base de datos como un usuario distinto.
-Su código ha abierto un grupo de registros (recordset) y ha puesto un bloqueo en un registro.

Es importante notar que Microsoft Access utiliza el bloqueo de página en vez del bloqueo de registro. Microsoft Access guarda registros en grupos de 2048 bytes, llamados páginas. Cada página puede contener un solo registro o varios. Si cada registro sólo requiere 200 bytes, entonces se pueden guardar en una página hasta 10 registros. Cuando Microsoft Access ubica un bloqueo en un registro, bloquea esa página de registros. Si hay 10 registros en esa página, entonces todos ellos quedan bloqueados.