Tengo definidos 4 campos de una tabla, que vienen a ser u1, u2, u3, u4. lo que necesito, es tener el promedio de estos 4 campos, ojo, no todos los campos tienen una nota, por ejemplo
en u1 tiene 05
en u2 no hay nada
en u3 tiene 18
en u4 tiene 12
El promedio debería ser 11.66 redondeando debería ser 12 pero me muestra el promedio de 64.25 porque los valores nulos tienen como referencia a un 222, este es el código que tengo, les estaría muy agradecido de recibir su ayuda
Código:
Sé que debo cambiar la linea Private Sub Comando19_Click() Dim vcon1 As ADODB.Connection Dim alu As ADODB.Recordset Dim sql As String Dim cod_mat, cod_act, u1, u2, u3, u4, et, prom_cl As Integer Dim prom_cn As String Set vcon1 = CurrentProject.Connection Set alu = New ADODB.Recordset alu.Open "SELECT DISTINCT MAT_COD, ACT_COD, T1U1PC1, T1U1PC2, T1U1PC3, T1U1PC4, T1PU1, idcurso FROM ACTAS_DETALLE;", vcon1, adOpenStatic, adLockReadOnly alu.MoveFirst Do Until alu.EOF cod_mat = alu(0) cod_act = alu(1) u1 = alu(2) u2 = alu(3) u3 = alu(4) u4 = alu(5) et = alu(6) cur = alu(7) prom_cl = 0 prom_cn = "" If IsNull(u1) Then u1 = 222 End If If IsNull(u2) Then u2 = 222 End If If IsNull(u3) Then u3 = 222 End If If IsNull(u4) Then u4 = 222 End If If IsNull(et) Then et = 222 End If prom_cl = (u1 + u2 + u3 + u4) / 4 + 0.1 sql = "UPDATE DETA_ACTA SET T1PU1=" & prom_cl & ",T1PU1CL='" & prom_cn & "' WHERE MAT_COD=" & cod_mat & " AND ACT_COD=" & cod_act & "; " vcon1.Execute (sql) alu.MoveNext Loop alu.Close vcon1.Close MsgBox ("LOS PROMEDIOS FUERON CALCULADOS SATISFACTORIAMENTE") End Sub
Cita:
pero he buscado en varios lugares y no encuentro algo parecido a lo que estoy buscando prom_cl = (u1 + u2 + u3 + u4) / 4 + 0.1