El Código Precio promedio del stock de productos no funciona con decimales

Los expertos, quería pedir si me pueden ayudar para resolver este problema que se me presento cuando ingrese este código que funciona bien pero solo con números enteros en el campo precio. Por ejemplo; cuando agrego una facturas con los precios sin decimales de los productos el código funciona bien para el promedio del stock y precio, pero cuando tengo que colocar algún decimal al valor del producto para cuadrar el valor final de la factura, luego voy a guardar los datos y me muestra el error 3075. Espero haber explicado bien mi problema

Tengo una tabla ARTICULOS, con los campos CODIGO_ARTICULO_AR, PRECIO_AR y STOCK_AR. También tengo un formulario Factura de compra con subformulario Línea factura de compra y en la línea factura de compra los campos CODIGO_ARTICULO_FC, PRECIO, CANTIDAD_FC, STOCK y STOCK_FINAL

Private Sub Form_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
DoCmd.RunSQL "Update ARTICULOS set PRECIO_AR=((STOCK_AR*PRECIO_AR)+(" & Me.PRECIO & "*" & Me.CANTIDAD_FC & "))/" & Me.STOCK_FINAL & ",STOCK_AR=STOCK_FINAL where CODIGO_ARTICULO_AR='" & Me.CODIGO_ARTICULO_FC & "'"
End Sub


        

1 Respuesta

Respuesta
2

En código los números decimales se representan con un punto, por ejemplo

TextoA=235.4567*textob

La coma se usa para separar condiciones, criterios, proposiciones, etc.

Además hay que tener en cuenta los tipos de campo numéricos

- Byte, entero y entero largo no trabajan con decimales

-Simple y doble sí

¡Gracias! Estimado, lo revisare y te comento

Cambie la coma por un punto pero access no me lo permite, me cambia de forma automática a un numero entero, solo me toma los decimales con una coma en el campo del subformulario. Que puedo hacer

Revise la tabla y el tamaño del campo y esta en Doble y en Estándar

Antes de nada. ¿Has mirado en el panel de control-Configuración regional, si tienes como separador decimal la coma o tienes puesto un punto?

Si tengo la tabla

En la que CampoA es numérico, simple con tres decimales y el campoB es numérico y entero(por tanto no "usa" decimales.

En el evento Después de actualizar del cuadro de texto CampoB tengo puesto

Private Sub CampoB_AfterUpdate()
Resultado = CampoA * CampoB * 10.2345
End Sub

Ya revise la configuración regional y el separador de decimales esta con la coma igual a la que tu me muestras

y realice el mismo ejercicio que me dices con una tabla y formulario y sale igualito a lo que me demuestras,

pero al realizar el ejercicio con el código inicial  en el formulario de la factura me sale error "3075".

También revise un ejercicio en una de tus respuestas en la cual hay valores con decimales usando el mismo código que tengo en mi formulario factura

pero a ti no te sale el error, sera que tengo el código mal escrito.

Pero es que en código las comas se usan para separar criterios, proposiciones, declaración de variables, etc. Los decimales se separan con un punto, en vez de poner

4300,456

Tienes que ponerlo como

4300.456

OK, ya lo hice, pero igual me llama la atención,  porque al colocar 4300.4 el valor me queda como 43.004 y si coloco 4300.45 el valor me queda como 430.045 pero si le coloco tres dígitos después del punto 4300.456 me deja el valor como corresponde 4.300.456

y lo otro que me llama la atención es que es tu ejemplo tiene los valores en formato moneda con coma y no te arroja error

gracias por tu ayuda

Espero no ser una molestia pero al agregar el numero sin la coma 4300.456 lo toma como 4.300.456 y este monto lo tomo como 4 millones 300 mil 456 pesos y me promedia el precio tomando el valor de millones. 

Vamos a hacer una cosa, haz una copia vacía de la(s) tabla(s) y de los formularios y me la mandas a [email protected]

En la Unión Europea, si marcas un campo o un control como moneda automáticamente adopta el símbolo € y le pone una coma y dos decimales.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas