VBA que no devuelve decimales

Private Sub Campo1_AfterUpdate()
If IsNumeric(Campo1) Then
Campo2 = [Campo1].[Column](2)
End If
End Sub

Tengo una tabla de productos, la cual tiene 2 campos --> nombre y valor

Tengo una segunda tabla donde tengo : nombre

Al colocar el nombre quiero y indicar una cantidad, la multiplique por el valor de ese nombre y me de un resultado.

Ejemplo:

1-Tabla

Producto=Manzanas                      min=10,5

2- tabla

Campo1:Manzana            Kg obtenidor=5               Campo2=10,5      Total=5-10,5=52,5

El producto es una tabla combinada relacionada con la tabla1 ([producto].[min]).

Al elegir el producto manzana, inmediatamente se me rellena el min... Posteriormente yo puedo indicar los Kg y consigo el total automáticamente.

Ahora bien... En la tabla lo he conseguido sin problema.

El problema lo tengo al pasarlo al formulario para poder introducir des de el y tener un HISTORIAL.

Creo el formulario a partir de la tabla2.

FORMULARIO

Inserto el VBA:

Private Sub Campo1_AfterUpdate()
If IsNumeric(Campo1) Then
Campo2 = [Campo1].[Column](2)
End If
End Sub

Si el número es entero, funciona correctamente, pero como el número de "min" sea con decimales, ja no consigo que funcione, me devuelve solo números enteros.

¿Cómo lo puedo arreglar?

2 respuestas

Respuesta
2

Honestamente, me he perdido un... bastante. No sé para que sirve lo de is numeric.

En el control Campo1, en el evento Despues de actualizar puedes poner

Campo2=dlookup("min","productos,"producto='" & me.campo1 & "'")

Y en el evento Después de actualizar del cuadro de texto KgObtenidos puedes poner

Tota=kgobtenidos*campo2

Con respecto a los decimales, mira si el campo Total en la tabla lo has definido como entero o entero largo(ninguno de los dos aceptan decimales) tendrías que ponerlo como single con los decimales que quieras o double con lo mismo.

En caso de que quisieras comprobar que un campo está o no en blanco podrías usar

If isnull([campox]) o

If not isnull([campoX])

Respuesta
1

Puedes usar esta instrucción

TextBox2 = Format([TextBox1] * campo2, "0.00")

le da formato al resultado del textbox2 como un numero con 2 decimales

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas