Asignar valor 0 a una variable que depende de una consulta si la consulta no devuelve registros.

Tengo una variable cuyo valor es el cálculo de una división entre dos variables que son el resultado de contar los registros de dos consultas. Me explico: tengo una variable "cuenta_positivo" que es el valor de contar los registros positivos de una consulta y otra "cuenta_total", que es el valor de contar todos los registros de la misma consulta. Entonces, tengo otra variable "tasa", cuyo valor es: "cuenta_positivo"/"cuenta_total". El problema es que cuando  la consulta de la que depende "cuenta_positivo" no devuelve ningún valor, no me devuelve el valor 0, y me dice que "cuenta_positivo" no tiene valor. He intentado asignárselo pero me ha sido imposible. He probado a ver si la variable estaba iniciada con ISNULL y ISEMPTY, pero me devuelve FALSE. La consulta "cuenta_positivo" la he hecho simplemente con Cuenta_positivo: Cuenta (*), y le he añadido NZ, pero no he conseguido que devuelva el valor 0 si Cuenta_positivo es ¿nulo? ¿vacío?. Pienso que el problema es que la variable "cuenta_positivo" no está iniciada, pero no sé cómo asignarle el valor en ese caso.
Agradecería cualquier ayuda. Muchas gracias a todos

1 Respuesta

Respuesta
1
Te paso un código de ejemplo que hace lo que pides. No creo que tengas problemas para adaptarlo a tu BD.
El código es:
...
Private Sub Comando0_Click()
Dim vPositivos As Long, vTotales As Long
Dim vRatio As Double
Dim cuentaTmp As Variant
cuentaTmp = DCount("[CampoX]", "nombreConsulta")
vTotales = Nz(cuentaTmp, 0)
cuentaTmp = DCount("[CampoX]", "nombreConsulta", "[CampoX]>=0")
vPositivos = Nz(cuentaTmp, 0)
If vTotales = 0 Then
MsgBox "No existen registros", vbCritical, "Aviso"
Else
vRatio = (vPositivos / vTotales) * 100
MsgBox "El ratio es " & vRatio & "%"
End If
End Sub
...
Si tienes algún problema me comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas