telefono propiedad porcentaje poner personalizado numero izquierda formato decimales completar como ceros campos ms-access formatting string-formatting

ms access - propiedad - ¿Cuál es el tipo de datos apropiado para almacenar números con ceros a la izquierda?



formato porcentaje access (5)

¿Necesita retenerlos como números dentro de la tabla (es decir, si cree que deberá hacer agregaciones dentro de las consultas, como SUM, etc.)?

Si no, entonces un tipo de datos de texto / cadena será suficiente.

Si lo haces, entonces tal vez necesites 2 campos.

  1. para almacenar el número [es decir, 80000] y
  2. para almacenar algunos metadatos sobre cómo se debe mostrar el valor
    • quizás algún tipo de máscara o patrón de formato [por ejemplo, ''000000''].

Puede usar la cadena de patrón anterior para formatear la visualización del número

  • Si está utilizando un lenguaje .NET, puede usar System.String.Format () o System.Object.ToString ()

  • Si está utilizando formularios / informes de acceso, Access utiliza patrones de formato de cadenas muy similares en sus controles de interfaz de usuario.

En Access 2003 necesito mostrar números como este manteniendo los ceros a la izquierda:

  • 080000
  • 090000
  • 070000

¿Qué tipo de datos debo usar para esto?


El carácter de ancho fijo con compresión Unicode con una restricción CHECK para garantizar exactamente seis caracteres numéricos, por ejemplo, la sintaxis del modo de consulta ANSI-92 :

CREATE TABLE IDs ( ID CHAR(6) WITH COMPRESSION NOT NULL CONSTRAINT uq__IDs UNIQUE, CONSTRAINT ID__must_be_ten_numeric_chars CHECK (ID ALIKE ''[0-9][0-9][0-9][0-9][0-9][0-9]'') );


Pregunta clave:

¿Los ceros iniciales son datos significativos, o simplemente formateados?

Por ejemplo, 07086 es mi código postal, y el cero inicial es significativo, por lo que los códigos postales de EE. UU. Deben almacenarse como texto.

¿Los valores ''1'', ''01'', ''001'' y ''0001'' se consideran únicos, valores legales o se consideran duplicados?

Si el cero inicial no es significativo en su tabla, y solo está ahí para el formateo, entonces almacene los datos como un número y formatee con ceros a la izquierda según sea necesario para fines de visualización.

Puede usar la función Format () para hacer su formateo, como en esta consulta de ejemplo:

SELECT Format(number_field, "000000") AS number_with_leading_zeroes FROM YourTable;

Además, el almacenamiento e indexación de números en todos los motores de base de datos que conozco son más eficientes que el almacenamiento e indexación de texto, por lo que con grandes conjuntos de datos (cientos de miles de registros y más), el arrastre de rendimiento del uso de tipos de datos de texto para datos numéricos puede bastante grande.

Por último, si necesita hacer cálculos sobre los datos, quiere que se almacenen como números.

La clave es comenzar desde cómo se usarán los datos y elegir su tipo de datos en consecuencia. Uno debe preocuparse de formatear solo en el momento de la presentación (en formularios e informes).

La apariencia nunca debe impulsar la elección de los tipos de datos en los campos de su tabla.


Si sus datos reales se parecen a sus ejemplos y tiene un número fijo de dígitos, simplemente almacene los datos en un campo numérico y use los atributos de formato / máscara de entrada de la columna en el diseño de la tabla de acceso para mostrarlos con los ceros acolchados.

A menos que tenga una cantidad variable de ceros a la izquierda, no hay razón para almacenarlos y generalmente es una mala idea. Usar un tipo de texto puede perjudicar el rendimiento, facilitar la introducción de datos anómalos y dificultar la consulta de la base de datos.


Use una cadena (o texto, varchar o cualquier variante de cadena que utilice su RDBMS particular) y acóplela con el carácter que desee ("0") que necesite.