Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Calcular media y mínimo

Estas en el tema de Calcular media y mínimo en el foro de Bases de Datos General en Foros del Web. Tengo un formulario de access en el que hay unos cuantos campos numéricos. Me gustaría que en un campo calculase con esos campos numéricos la ...
  #1 (permalink)  
Antiguo 07/04/2008, 07:48
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Calcular media y mínimo

Tengo un formulario de access en el que hay unos cuantos campos numéricos. Me gustaría que en un campo calculase con esos campos numéricos la media y en otro campo el mínimo.
__________________
Cámara Oscura
Etheria
  #2 (permalink)  
Antiguo 07/04/2008, 08:02
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Re: Calcular media y mínimo

La media y el minimo de un campo??? O de un registro??

Si fuera de una campo:

SELECT Avg(Campo1) AS PromedioDeCampo1, Min(Campo1) AS MínDeCampo1
FROM TablaEjemplo;

un saludo
  #3 (permalink)  
Antiguo 07/04/2008, 08:29
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Calcular media y mínimo

no es de un sólo campo, sino de varios y que los muestre en un cuadro de texto independiente
__________________
Cámara Oscura
Etheria
  #4 (permalink)  
Antiguo 07/04/2008, 08:37
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Re: Calcular media y mínimo

En ese caso tendras que hacerte una funcioncilla que lo haga. Cuantos campos son??? Siempre son los mismos??? Los controles cuyo origen de control son esos campos, como se llaman??

Un saludo
  #5 (permalink)  
Antiguo 08/04/2008, 01:20
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Calcular media y mínimo

los campos son de tipo numérico y son los siguientes: seco1a, seco1b, seco1c, seco2a, seco2b, seco2c, seco3a, seco3b, seco3c, seco4a, seco4b, seco4c, seco5a, seco5b, seco5c

en total 15 campos.
__________________
Cámara Oscura
Etheria
  #6 (permalink)  
Antiguo 08/04/2008, 01:34
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Re: Calcular media y mínimo

Y los nombres de los controles, son iguales??

Un saludo
  #7 (permalink)  
Antiguo 08/04/2008, 02:14
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Calcular media y mínimo

sip, con el mismo nombre
__________________
Cámara Oscura
Etheria
  #8 (permalink)  
Antiguo 08/04/2008, 02:46
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Re: Calcular media y mínimo

Copiate estas funciones en el modulo del formulario:

Public Function MediaEnForm() As Double
Dim arrayControles() As Variant
Dim i As Integer
Dim CuantosValores As Integer
Dim SumaValores As Double

arrayControles = Array("seco1a", "seco1b", "seco1c", "seco2a", "seco2b", "seco2c", "seco3a", "seco3b", "seco3c", _
"seco4a", "seco4b", "seco4c", "seco5a", "seco5b", "seco5c")

For i = 0 To UBound(arrayControles)
If Nz(Me.Controls(arrayControles(i)), 0) <> 0 Then
CuantosValores = CuantosValores + 1
SumaValores = SumaValores + Me.Controls(arrayControles(i))
End If
Next

MediaEnForm = SumaValores / CuantosValores
End Function

Public Function MinimoEnForm() As Double
Dim arrayControles() As Variant
Dim i As Integer
Dim Minimo As Double

arrayControles = Array("seco1a", "seco1b", "seco1c", "seco2a", "seco2b", "seco2c", "seco3a", "seco3b", "seco3c", _
"seco4a", "seco4b", "seco4c", "seco5a", "seco5b", "seco5c")

For i = 0 To UBound(arrayControles)
If Nz(Me.Controls(arrayControles(i)), 0) <> 0 Then
If Nz(Minimo, 0) = 0 Then
Minimo = Me.Controls(arrayControles(i))
ElseIf Me.Controls(arrayControles(i)) < Minimo Then
Minimo = Me.Controls(arrayControles(i))
End If
End If
Next

MinimoEnForm = Minimo
End Function

Y en los TextBox independientes donde quieres mostrar la media y el minimo, pon lo siguiente en su origen de control:

=MinimoEnForm()
=MediaEnForm()

Un saludo
  #9 (permalink)  
Antiguo 14/04/2008, 03:07
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Calcular media y mínimo

resurjo este tema porque hasta ahora no he podido probarlo >.<

Veamos, he hecho un módulo llamado media con la primera parte que tenía que copiar y después en unos campos de texto independientes he puesto lo último, el problema es que me ha dado error en un Me (Te lo marco en rojo)

Public Function MediaEnForm() As Double
Dim arrayControles() As Variant
Dim i As Integer
Dim CuantosValores As Integer
Dim SumaValores As Double

arrayControles = Array("seco1a", "seco1b", "seco1c", "seco2a", "seco2b", "seco2c", "seco3a", "seco3b", "seco3c", _
"seco4a", "seco4b", "seco4c", "seco5a", "seco5b", "seco5c")

For i = 0 To UBound(arrayControles)
If Nz(Me.Controls(arrayControles(i)), 0) <> 0 Then
CuantosValores = CuantosValores + 1
SumaValores = SumaValores + Me.Controls(arrayControles(i))
End If
Next

MediaEnForm = SumaValores / CuantosValores
End Function

Puede ser porque todavía están los campos en blanco?
__________________
Cámara Oscura
Etheria
  #10 (permalink)  
Antiguo 14/04/2008, 03:15
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Re: Calcular media y mínimo

Es que tienes que copiar las funciones en el modulo del form, no en un modulo independiente. Es decir, en el codigo del form, ya que me hace referencia al formulario donde se esta ejecutando el codigo. Para tener esa funcion en un modulo independiente, habria que modificarla.

Un saludo
  #11 (permalink)  
Antiguo 14/04/2008, 03:24
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Calcular media y mínimo

Bueno, ahora creo que lo he puesto correctamente (eso espero >.<), pero al abrir el formulario, el campo de media me sale #¡Núm! mientras que en el minimo me pone 0. Teniendo en cuenta que aún no he metido ningún dato. Esto significa que no he metido bien el módulo?
__________________
Cámara Oscura
Etheria
  #12 (permalink)  
Antiguo 14/04/2008, 03:46
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Re: Calcular media y mínimo

No, parece estar bien metido. Loq ue pasa es que si no tiene valores te dejara como minimo el cero, y en la media, da un error porque intenta hacer una division entre cero.

Un saludo
  #13 (permalink)  
Antiguo 14/04/2008, 08:05
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Calcular media y mínimo

bueno, en principio lo antes mencionado funciona. El problema es que quiero poner lo que aparece en ese campo en un informe. He intendo que en origen de datos, dándole a los puntitos, seleccionar el campo del formulario, pero me pone =[minimo] y en la vista del informe me pregunta cual es el minimo. Así que intente hacerlo de forma manual poniendo lo siguiente:
=[Formularios]![certificado1]![minimo]

Pero ahora cuando visualizo el informe me sale #¿Nombre?

por lo que ya no se me ocurren más maneras de pasar ese campo al informe. alguna idea?
__________________
Cámara Oscura
Etheria
  #14 (permalink)  
Antiguo 15/04/2008, 02:22
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Calcular media y mínimo

nadie sabe cómo arreglar eso? T.T
__________________
Cámara Oscura
Etheria
  #15 (permalink)  
Antiguo 15/04/2008, 02:41
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Re: Calcular media y mínimo

En el cudro de texto Minimo del formulario certificado1 te sale el dato correcto??? Cuando ejecutas el informe el formulario esta abierto?? esto........

=[Formularios]![certificado1]![minimo]

lo has puesto en el origen del control del cuadro de texto??

un saludo
  #16 (permalink)  
Antiguo 15/04/2008, 02:43
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Calcular media y mínimo

veamos, para probar que no me diese ningún error, puse unos cuantos números. en el formulario el mínimo ahora mismo lo tengo en 1. Pero cuando visualizo el informe, su campo aparece #¿Nombre?, así que no se. Puede ser porque no es un campo que se guarde?
__________________
Cámara Oscura
Etheria
  #17 (permalink)  
Antiguo 15/04/2008, 02:49
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Re: Calcular media y mínimo

No deberia, prueba si te sale el cargar el informe:

Private Sub Report_Open(Cancel As Integer)
MsgBox [Forms]![certificado1]![minimo]
End Sub

Un saludo
  #18 (permalink)  
Antiguo 15/04/2008, 02:54
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Calcular media y mínimo

Me sale el siguiente error:

__________________
Cámara Oscura
Etheria
  #19 (permalink)  
Antiguo 15/04/2008, 03:01
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Re: Calcular media y mínimo

Ese formulario se llama asi y esta bierto??

Un saludo
  #20 (permalink)  
Antiguo 15/04/2008, 03:03
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Calcular media y mínimo

se llama así y está cerrado
__________________
Cámara Oscura
Etheria
  #21 (permalink)  
Antiguo 15/04/2008, 03:11
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Re: Calcular media y mínimo

Pues tiene que estar abierto, si no el dato no existe en nigun sitio.

Un saludo
  #22 (permalink)  
Antiguo 15/04/2008, 03:26
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Calcular media y mínimo

vale, era eso >.< Graciasssss
__________________
Cámara Oscura
Etheria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:36.