Contar.si en access dentro de un registro.

Tengo una tabla en dónde tengo más o menos 30 campos el nombre del cliente y el resto son campos que pueden o no tener la palabra "Validar" y quiero mediante una consulta de actualización a un campo de la misma tabla contar la cantidad "Validar" para cada registro o nombre de cliente.

1 Respuesta

Respuesta
4

No dices si quieres guardar la cuenta o no. Vamos a suponer que no.

1º Supongamos que tienes una tabla(lógicamente no pongo 30 campos, es mucho trabajo con el calor que hace)

Construyo un formulario y le añado un botón

Si pulso el botón

Me voy al siguiente registro

El código del botón es

En caso de que el formulario fuera continuo sería igual. Primero seleccionas el registro y luego pulsas el botón.

2º Vamos a suponer que SI quieres guardar en el campo Visita. El código debes ponerlo como

dim i as integer

docmd.gotorecord,,acfirst

Dim contador As Byte
For Each Control In Form.Controls
If Control.ControlType = acTextBox Then
If Control.Value = "visita" Then
contador = Nz([contador]) + 1
End If
End If
Next

Cuenta=" & contador & "

End Sub

Mucha gracias, por la información pero creo que es muy avanzado para lo que realmente necesito. La verdad quiero saber si se puede utilizar un contar.si dentro de una tabla o consulta de creación de tabla con la misma funcionalidad de excel en la cual la fórmula =Contar.si(A3:E3;"VALIDAR") me cuente cuántos veces esta la palabra Validar fila 3 de la columna A hasta la E. En el acces tengo 5 columnas y 8 registros quiero saber en la columna 6 (cantidad veces) cuántas veces esta la palabra Validar de la columna 1 a la 5 para cada registro. Mil gracias...

Vamos a ver si me explico. Primero has dicho 30 campos, ahora has dicho 5.

Por otro lado, las funciones que ves en Excel realmente no existen. Eso de contar. Si no existe. Lo que existe es código al que le ponen ese nombre, pero lo que realmente estás ejecutando es el código que te he puesto. Puedo crear un procedimiento y llamarle lo que quiera, pero lo que se ejecuta es lo que le hayas dicho en código de VB. Por ejemplo, en Access puedes crear una macro que se llame Ir al registro siguiente, pero en realidad lo que le estás diciendo es

Docmd. Gotorecord,, acnext

Además las tablas no tienen código, son un simple recipiente de datos. Puedes hacerlo en una consulta, pero el lenguaje SQL no es tan versátil como el VB

Si construyo una consulta con los campos de la tabla

Por problemas de espacio, a la izquierda de cargo contacto están los campos NombreCompañia y Nombre contacto. Luego creo los campos calculados

CuentaA:Siinm([nombrecompañia]="Visita",1;0)

CuentaB, CuentaC,... es lo mismo para los otros campos y le añado un campo Total

Total:cuentaA+cuentab+cuentaC+cuentaD+cuentaE

y el resultado

Si no quieres que se vean los ceros, en la instrucción Siinm cambia los 0 por ""

Pero luego tendrías que poner

Total=nz([nombrecompañia])+nz([nombrecontacto])+....

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas