Access - Condición macro respecto a valor pie formulario

 
Vista:

Condición macro respecto a valor pie formulario

Publicado por Pascual (66 intervenciones) el 19/10/2009 00:17:20
Hola tengo la siguiente duda , a ver si me podeis ayudar: En un formulario tengo un total calculado a través de la función =Suma([TOTAL]) (insertada en el pie de mi formulario).

¿Cómo hago para introducir ese valor en una macro?.

Lo que busco es arrojar un valor en cuadro de texto en funcíón del valor que haya en ese total, por ejemplo si en ese total tengo un valor de 500 me gustaría que un cuadro de texto apareciese el valor 2; y si fuese distinto, que apareciese el valor 4. Si el valor es 400 aparecerá un valor 3.

¿Alguien me puede ayudar?
Desde ya muchas gracias

Saludos
(Pascual)

P.D: He intentado hacerlo con una macro de access (sin código) pero me aparece un error “No coinciden los tipos” (espero haberme explicado con claridad, gracias)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Condición macro respecto a valor pie formulario

Publicado por Niko (57 intervenciones) el 19/10/2009 00:53:24
Saludos...

En el cuadro de Texto, en el que quieres que te muestre los valores 2 ó 4, puedes poner esto: (en Origen del Control)

=SiInm(Suma([Total])=500,2,4)

Espero te sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Condición macro respecto a valor pie formulario

Publicado por Pascual (66 intervenciones) el 19/10/2009 01:17:51
Ok muchas gracias por tu rápida respuesta... pero me gustaría saber hacerlo para condicionarlo respecto de un intervalo de valores... por ejemplo, si tengo este intervalo como condición, me gustaría que en el cuadro de texto me apareciesen los siguientes valores:

100<Valor<200 Valor cuadro de texto: 700
200<Valor<300 Valor cuadro de texto: 800
400<Valor<500 Valor cuadro de texto: 900
500<Valor<600 Valor cuadro de texto: 1000

Es decir, según el valor que aparezca en el cuadro de texto del pie de mi formulario, se activará la macro y según el el intervalo en el que se situe mi valor, el cuadro de texto arrojará un valor u otro (700,800,900,1000 ....)

No se si me habré explicado con claridad

Gracias desde ya

Saludos
(Pascual)

P.D: Cuando he planteado mi pregunta por primera vez, he explicado que he intentado hacerlo con una macro condicional de access, pero me arroja el error "No coinciden los tipos". Tal vez un código Visual Basic sea lo más oportuno.. no se si una estructura Select Case puede ser apropiada... pero ni idea... espero vuestra ayuda. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Condición macro respecto a valor pie formulario

Publicado por Niko (57 intervenciones) el 19/10/2009 02:57:15
Veamos...

De pronto se me ocurre esto: (en el evento de Formulario "Al Abrir")

Private Sub Form_Open(Cancel As Integer)
Dim sumT As Long, resulT As Long
sumT = DSum("[TOTAL]", "nombreConsulta")
'nombreConsulta : es el nobre de la consulta que utilizas como origen de datos para el formulario
'o mejor aun con una intruccion SQL...
'esto porque cuando abras el formulario
'el campo que tiene =Suma([TOTAL])
'no tendrá ningun valor por lo tanto el calculo que quieres realizar no se efectuará
'o te resultará cero, #error, etc...

'entonces empezamos
Select Case sumT
Case Is >= 100, Is < 200 'el signo > ó >= depende de tus intervalos
resulT = 700
Case Is >= 200, Is < 300
resulT = 800
Case Is > 400, Is < 500 'por cierto, te falta el intevalo 300<Valor<400
resulT = 900
Case Is > 500, Is < 600
resulT = 1000
Case Else 'para cualquier otro valor fuera de los intervalos asignados
resulT = 0
End Select

'y el resultado correspondiente lo pegamos el cuadro de texto
Me.CuadroTexto1 = resulT
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CORRECCION...!!!!

Publicado por Niko (57 intervenciones) el 19/10/2009 03:28:18
Aqui esta el codigo correcto hecho con IF.....THEN ya que con SELECT CASE no funciona con intervalos...

Private Sub Form_Open(Cancel As Integer)
Dim sumT As Long, resulT As Long
sumT = DSum("[monto]", "Consulta1")
'nombreConsulta : es el nobre de la consulta que utilizas como origen de datos para el formulario
'o mejor aun con una intruccion SQL...
'esto porque cuando abras el formulario
'el campo que tiene =Suma([TOTAL])
'no tendrá ningun valor por lo tanto el calculo que quieres realizar no se efectuará
'o te resultará cero, #error, etc

'entonces empezamos
If sumT >= 100 And sumT < 200 Then 'el signo > ó >= depende de tus intervalos
resulT = 700
End If

If sumT >= 200 And sumT < 300 Then
resulT = 700
End If
If sumT > 400 And sumT < 500 Then 'por cierto, te falta el intevalo 300<Valor<400
resulT = 700
End If
If sumT > 500 And sumT < 600 Then
resulT = 700
End If

'y el resultado correspondiente lo pegamos el cuadro de texto
Me.Texto1 = resulT
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CORRECCION...!!!!

Publicado por Pascual (66 intervenciones) el 19/10/2009 16:19:04
Muchas gracias Niko, voy a ver si lo puedo entender y si me funciona... si no me pondré en contacto contigo... para ver si de nuevo puedes ayudarme.

Desde ya muchas gracias

Saludos
(Pascual)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Estructura If-Else (Para Niko)

Publicado por Pascual (66 intervenciones) el 20/10/2009 21:03:39
Saludos de nuevo Niko, he probado el código que tan cordialmente me escribiste, y a pesar de parecer estar bien me marca un error que por el momento no se solucionar.

Cuando abro el formulario el depurador automáticamente me marca como error la línea:

sumT = DSum("[Total]", "ConsultaOrigenFormulario")


Cuando abro el formulario me aparece la típica ventana con el siguiente texto:

"Se ha producido el error "94" en tiempo de ejecución:
Uso no válido de Null

y al depurar autómaticamente me marca la línea que te escribía arriba:
sumT = DSum("[Total]", "ConsultaOrigenFormulario")

No se si me habré explicado con claridad.... si lo crees necesario no me importaría enviarte mi ejercicio, por si hay algún error mas que yo no haya podido detectar...

Desde ya muchas gracias
Saludos
(Pascual)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Estructura If-Else (Para Niko)

Publicado por Niko (57 intervenciones) el 21/10/2009 06:56:32
Saludos...

el error posiblemente se debe a lo siguiente:

sumT = DSum("[Total]", "ConsultaOrigenFormulario")

en lugar de "ConsultaOrigenFormulario" debes colocar el nombre de la tabla o consulta que tu formulario tiene como 'Origen del registro', asi por ejemplo si la tabla se llama:

pedidos deberas colocar :
sumT = DSum("[Total]", "pedidos")

pruebalo de esa manera, si aun asi no te funciona.... quiza puedas enviarme tu MDB y yo te lo reenvio con la correccion...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Estructura If-Else (Para Niko)

Publicado por Pascual (66 intervenciones) el 22/10/2009 12:05:24
Gracias Niko por tu ayuda, pero acabo de comprobar y no funciona... seguro que se debe a algún error que por el momento no soy capaz de detectar.

Estaría encantado de enviarte el ejercicio por si me pudieses ayudar.

De antemano, muchas gracias

Saludos
(Pascual)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Estructura If-Else (Para Niko)

Publicado por Niko (57 intervenciones) el 25/10/2009 00:43:27
Bueno ahi tienes mi e-mail: [email protected]

Si aun no lograste ubicar el error...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar