(demasiado antiguo para responder)
Lugares Decimales en Acces 97
Softjaen
2003-09-13 08:44:53 UTC
estoy creando a través de código una base de datos Acces 97 con DAO.
Una vez creada las tablas y campos que necesito, debo limitar el número de
decimales en los campos de tipo "Double" a dos.
Pero cuando abro la base de datos con Acces y compruebo el diseño de la
table,
sigo teniendo el valor en "Automático"
Hola, Oscar:

Efectivamente, el campo aparece con su propiedad «Lugares decimales»
establecida a «Automático». Pero si ejecutas la tabla en Access, observarás
que si introduces más de dos decimales, el valor se muestra con sólo dos
decimales. Es más, si compruebas a través de código VB el valor de la
propiedad «DecimalPlaces» obtendrás el valor 2.

Échale un vistazo al siguiente artículo de la Base del Conocimiento (en
inglés) por si te puede servir de ayuda:

ACC: Fixed Format Required with Decimal Point Setting
http://support.microsoft.com/default.aspx?scid=kb;en-us;121098

Un saludo.

--
Enrique Martínez
[MS MVP - VB]
Oscar M
2003-09-15 10:42:56 UTC
Muchas gracias SoftJaen, hice la prueba de introducir un número con varios
decimales y aparecían todos, no solo dos. Según el artículo que me has indicado
solo si introducimos un valor en el formato de campo, actuará el valor de
"Lugares Decimales". Voy a intentar introducir el valor "Estandar" a través de
código a ver si consigo que los muestre bien.

De todas maneras, ¿esto datos son solo para la visualización a través de Acces
97? Si yo recupero el dato a través de código, obtengo el número con todos los
decimales no?

Un saludo.

Óscar.
Post by Softjaen
estoy creando a través de código una base de datos Acces 97 con DAO.
Una vez creada las tablas y campos que necesito, debo limitar el número de
decimales en los campos de tipo "Double" a dos.
Pero cuando abro la base de datos con Acces y compruebo el diseño de la
table,
sigo teniendo el valor en "Automático"
Efectivamente, el campo aparece con su propiedad «Lugares decimales»
establecida a «Automático». Pero si ejecutas la tabla en Access, observarás
que si introduces más de dos decimales, el valor se muestra con sólo dos
decimales. Es más, si compruebas a través de código VB el valor de la
propiedad «DecimalPlaces» obtendrás el valor 2.
Échale un vistazo al siguiente artículo de la Base del Conocimiento (en
ACC: Fixed Format Required with Decimal Point Setting
http://support.microsoft.com/default.aspx?scid=kb;en-us;121098
Un saludo.
--
Enrique Martínez
[MS MVP - VB]
Softjaen
2003-09-15 13:35:41 UTC
hice la prueba de introducir un número con varios decimales y aparecían
todos, no solo dos.
Hola, Oscar:

Eso es porque has creado mediante código la propiedad «DecimalPlaces» sin
haber creado la propiedad «Format», por lo que la primera propiedad no tiene
ningún efecto si la propiedad «Format» está en blanco o tiene el valor
«Número general», tal y como lo puedes comprobar en el artículo de la KB que
te indiqué. Crea primero la propiedad «Format» y la estableces a «Estándar»,
y después creas la propiedad «DecimalPlaces»:

Set Tb = Db.TableDefs("AltasDetalle2")
Set Fd = Tb.Fields!alt2pvp

' Propiedad Format
Set prop = Fd.CreateProperty("Format", dbText, "Standard")
Fd.Properties.Append prop

' Propiedad DecimalPlaces
Set prop = Fd.CreateProperty("DecimalPlaces", dbInteger, 2)
Fd.Properties.Append prop
De todas maneras, ¿esto datos son solo para la visualización a través de
Acces 97? Si yo recupero el dato a través de código, obtengo el número
con todos los decimales no?
Efectivamente. La propiedad «Format» y «DecimalPlaces» son para utilizarlas
en Microsoft Access. La primera afecta sólo a cómo se muestran los datos, y
la segunda sólo afecta al número de lugares decimales que se muestran.
Ninguna de la dos propiedades afecta a cómo se almacenan los datos (Format)
o al número de decimales que se almacena (DecimalPlaces).

Si mediante código de Visual Basic recuperas el valor del campo, podrás leer
el número almacenado con todos sus decimales introducidos. Si has
introducido dos decimales, pues verás dos decimales. Que has introducido
tres, pues leeras tres decimales, etc.

Un saludo.

--
Enrique Martínez
[MS MVP - VB]
Oscar M
2003-09-15 17:50:45 UTC
Muchas gracias por todo SojtJaen, me has sido de gran utilidad.

Un saludo.

Óscar.
Post by Softjaen
hice la prueba de introducir un número con varios decimales y aparecían
todos, no solo dos.
Eso es porque has creado mediante código la propiedad «DecimalPlaces» sin
haber creado la propiedad «Format», por lo que la primera propiedad no tiene
ningún efecto si la propiedad «Format» está en blanco o tiene el valor
«Número general», tal y como lo puedes comprobar en el artículo de la KB que
te indiqué. Crea primero la propiedad «Format» y la estableces a «Estándar»,
Set Tb = Db.TableDefs("AltasDetalle2")
Set Fd = Tb.Fields!alt2pvp
' Propiedad Format
Set prop = Fd.CreateProperty("Format", dbText, "Standard")
Fd.Properties.Append prop
' Propiedad DecimalPlaces
Set prop = Fd.CreateProperty("DecimalPlaces", dbInteger, 2)
Fd.Properties.Append prop
De todas maneras, ¿esto datos son solo para la visualización a través de
Acces 97? Si yo recupero el dato a través de código, obtengo el número
con todos los decimales no?
Efectivamente. La propiedad «Format» y «DecimalPlaces» son para utilizarlas
en Microsoft Access. La primera afecta sólo a cómo se muestran los datos, y
la segunda sólo afecta al número de lugares decimales que se muestran.
Ninguna de la dos propiedades afecta a cómo se almacenan los datos (Format)
o al número de decimales que se almacena (DecimalPlaces).
Si mediante código de Visual Basic recuperas el valor del campo, podrás leer
el número almacenado con todos sus decimales introducidos. Si has
introducido dos decimales, pues verás dos decimales. Que has introducido
tres, pues leeras tres decimales, etc.
Un saludo.
--
Enrique Martínez
[MS MVP - VB]