Contar CAMPOS

Mi problema es que tengo una tabla con 7 campos numéricos y necesitaría un campo en el que me indique en cada registro cuantos de esos campos son mayores que 0.

1 respuesta

Respuesta
1
Para resolver tu pregunta debo decirte que en una tabla no puede hacerse (o yo no se hacerlo) pero sí en una consulta o más fácil en un formulario.
Lo más sencillo en un formulario que dependa de la tabla origen, y en la vista de diseño del Form crea un nuevo cuadro de texto, le llamas por ejemplo txtCuentaN
Luego vas a la vista de diseño de código, Menu: Ver- Código y ahí escribes esto sustituyendo los nombres que están entre comillas "---" por los tuyos de tu formulario y que corresponden a los campos de tu tabla :
--------
Private Sub Form_Current()
Dim ValorCampo
ValorCampo = 0
If "Me.ProductoID" > 0 Then ValorCampo = 1
If "Me.Cantidad" > 0 Then ValorCampo = ValorCampo + 1
If "Me.Precio" > 0 Then ValorCampo = ValorCampo + 1
If "Me.TotalBruto" > 0 Then ValorCampo = ValorCampo + 1
Me.CuentaN = ValorCampo
End Sub
-----------
Solo debes añadir tantas sentencias
If "tu nombre de campo" > 0 Then
ValorCampo = ValorCampo + 1
Como campos quieras contar con valores mayor que 0.
Espero que esto te ayude, si no es lo que querías házmelo saber y te buscaré otra solución.
Yo tenia hecho algo parecido pero el problema es que no me mantiene el valor en cada registro, el campo Cuentan se queda en todos los registros con el ultimo valor. Lo tengo hecho en un formulario con vista en formularios continuos y quisiera que me lo contara para cada registro (fila).
Saludos
Ya me imaginaba que me dirías esto...
Bueno vamos hacerlo bien..
Primero crearemos la función que nos cuente los campos:
1.- Elige Módulo y nuevo . y en el diseñador de código copia y pega esto:
--------
Public Function ContarN(ByVal c1, c2, c3, c4, c5, c6, c7) As Integer
Dim ValorCampo
ValorCampo = 0
If c1 > 0 Then ValorCampo = 1
If c2 > 0 Then ValorCampo = ValorCampo + 1
If c3 > 0 Then ValorCampo = ValorCampo + 1
If c5 > 0 Then ValorCampo = ValorCampo + 1
If c6 > 0 Then ValorCampo = ValorCampo + 1
If c7 > 0 Then ValorCampo = ValorCampo + 1
ContarN = ValorCampo
End Function
------------
Cierra y guarda el módulo.
Con esto habremos creado una función que nos hace lo que queremos.
Ahora en el formulario en vista de diseño crea un nuevo cuadro de texto, le llamas por ejemplo txtCuentaN, y ahí en sus propiedades en "Origen del control" utilizas la función que acabamos de hacer y escribes esto:
=ContarN([a1];[a2];[a3];[a4];[a5];[a6];[a7])
Sustituyendo los nombres a1, a2, etc.. por los tuyos de tu formulario.
Y ahora si que funciona bien..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas