Visual Basic - Insertar condición en un código

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 51
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por isidro (19 intervenciones) el 29/09/2020 09:52:56
Buenos días.

Tengo el siguiente Módulo:

1
2
3
Public Sub EmailMasivo(NombreInforme, destinatario, Asunto, Optional Cuerpo, Optional CC, Optional CCO)
DoCmd.SendObject acSendReport, NombreInforme, "PDF", destinatario, CC, CCO, Asunto, Cuerpo, False
End Sub.

Acompañado de la siguiente función:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Opción52_Click()
Dim NombreInforme As String
Dim destinatario As String
Dim CC As String
Dim Asunto As String
Dim Cuerpo As String
'PETER MENSAH
NombreInforme = "1_Resumen Preparacion_Peter Mensah"
destinatario = ""
CC = ""
CC0 = ""
Asunto = "Productividad"
Cuerpo = ""
EmailMasivo NombreInforme, destinatario, Asunto, Cuerpo, , CC

Como sabrán este código ejecuta un informe y lo manda por correo. Sin embargo me gustaría poner una condición, es decir, dependiendo del valor en el campo bultos que lo mande o no. O sea si es mayor de 0 sera verdadero y si es menor falso por consiguiente no enviarlo.

Añado un claro ejemplo:


a5eb8765eb8bb6b9c5f1f20a126fc084_page-0001
a5eb8765eb8bb6b9c5f1f20a126fc084_page-0001
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
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por Antoni Masana (558 intervenciones) el 29/09/2020 15:23:45
En primer lugar después de los códigos pones "Como sabrán ..." pues la verdad es que no se, no trengo ni p... idea de lo que haces.
En segundo lugar en las imágenes en bultos y líneas lo que pone #¡Núm! es feo de ..., bueno es feo.
En tercer lugar donde están los bultos, quiero decir como se llama el objeto, campo o variable.

Lo normal en estos casos es usar la instrucción IF.

Ejemplo.
1
If Bultos > 0 Then Haces cosas

Pero vamos que es lo más básico en programación.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 51
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por isidro (19 intervenciones) el 29/09/2020 16:09:39
Hola programador,

En primer lugar aunque no tengas ni p..idea de lo que hace supongo que sabrás leer?? Es decir, te detallo que el código llama a un informe y lo envía por email.

En segundo lugar, las imágenes no están puestas para ganar un pulitzer, es un ejemplo de los datos que devuelve, y el campo, que por cierto se llama BULTOS a que hago referencia es el que está sombreado en amarillo.

En tercer lugar, sé que la instrucción IF es la más adecuada, pero fíjate, resulta que no tengo ni p..idea de cómo integrar dentro del código y se me ocurrió la feliz idea de acudir a los sabios expertos como tú para darme algo luz.

Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por Andres Leonardo (1798 intervenciones) el 29/09/2020 16:55:16
Seria algo asi...

Por cierto LUGARDONDEESTAELVALORDEBULTOS es igual si es un textbox o es una celda de excel o un label o donde sea ... que este

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Opción52_Click()
Dim NombreInforme As String
Dim destinatario As String
Dim CC As String
Dim Asunto As String
Dim Cuerpo As String
'PETER MENSAH
 
if LUGARDONDEESTAELVALORDEBULTOS  > 0 then 
NombreInforme = "1_Resumen Preparacion_Peter Mensah"
destinatario = ""
CC = ""
CC0 = ""
Asunto = "Productividad"
Cuerpo = ""
EmailMasivo NombreInforme, destinatario, Asunto, Cuerpo, , CC
else
     'esta lina si deseas la puedes comentar luego
     msgbox "Este mensaje no se enviara puesto que bultos es <=0 "
end if
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 51
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por isidro (19 intervenciones) el 29/09/2020 17:25:00
Gracias Amigo, lo probaré y te comentaré como me fue. La ruta está dentro del informe y el cuadro del texto se llama bultos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 51
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por isidro (19 intervenciones) el 30/09/2020 10:41:38
No he triunfado! Creo que no estoy haciendo algo bien:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Opción52_Click()
Dim NombreInforme As String
Dim destinatario As String
Dim CC As String
Dim Asunto As String
Dim Cuerpo As String
'PETER MENSAH
If BULTOS > 0 Then
NombreInforme = "1_Resumen Preparacion_Peter Mensah"
destinatario = "isidro_fernandez@condis.es"
CC = ""
CC0 = ""
Asunto = "Productividad"
Cuerpo = ""
EmailMasivo NombreInforme, destinatario, Asunto, Cuerpo, , CC
Else
MsgBox "Este correo no se enviará por no tener bultos"
End If
End Sub
Creo que no sabe dónde está el cajón de BULTOS. No sé cómo expresarlo.El cuadro de texto se llama BULTOS y se halla dentro del informe que aparece hay escrito. Sin embargo, lo único que me devuelve al ejecutar el código es el mensaje, a pesar de que el campo BULTOS es superior a 0.
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
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por Andres Leonardo (1798 intervenciones) el 30/09/2020 19:00:28
antes de esta linea coloca esto

1
2
3
msgbox Bultos
msgbox bultos.text
If val(BULTOS.TEXT) > 0 Then

luego puedes comentar los msgbox solo es para ver que viene.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 51
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por isidro (19 intervenciones) el 01/10/2020 08:04:26
Buenos días, gracias por tu atención.

He probado tu recomendación y primero se sale una ventana que pone MICROSOFT ACCESS para aceptar y luego se queja en este punto. Te lo sombreo en negrita:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub Opción52_Click()
Dim NombreInforme As String
Dim destinatario As String
Dim CC As String
Dim Asunto As String
Dim Cuerpo As String
'PETER MENSAH
 
MsgBox BULTOS
MsgBox BULTOS.Text
If Val(BULTOS.Text) > 0 Then
 
NombreInforme = "1_Resumen Preparacion_Peter Mensah"
destinatario = "isidro_fernandez@condis.es"
CC = ""
CC0 = ""
Asunto = "Productividad"
Cuerpo = ""
EmailMasivo NombreInforme, destinatario, Asunto, Cuerpo, , CC
 
Else
MsgBox "Este correo no se enviará por no tener bultos"
 
End If
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
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por Andres Leonardo (1798 intervenciones) el 01/10/2020 15:30:20
Es por que entonces bultos vale 0

deberias poner la imagen.

en todo caso es eso .. identifica en tu formulario como se llama ese control.

envia las imagenes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 51
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por isidro (19 intervenciones) el 02/10/2020 07:53:43
Buenos días. Debo comentar que nunca comenté que fuese un formulario, es un informe que ataca a una consulta. Te paso las imágenes:

Informe-vista-presentacion
Informe-vista-previa

Cómo ves, el nombre del cuadro de texto se llama BULTOS.

Gracias por tu paciencia.
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
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por Andres Leonardo (1798 intervenciones) el 06/10/2020 15:59:39
Deberia entocnces ser

Bultos.Value

Me puedes decir que usas ahi un label.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 51
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por isidro (19 intervenciones) el 06/10/2020 16:22:53
No entiendo tu respuesta. Preguntas si uso un label?? Label es etiqueta, verdad. En la imagen te muestro el cuadro de texto y su nombre. La etiqueta que está asociada a ese cuadro de texto se llama Etiqueta54. Te adjunto imagen. En cuanto a Bultos.value, en cual posición del código se debería poner??

Gracias por todo.
Captura
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
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por Antoni Masana (558 intervenciones) el 06/10/2020 21:59:18
En primer lugar, me disculpo por mi comentario y me merezco el voto negativo, me pillo en un mal momento.
Veo que sigues con el problema una semana y aún no has encontrado la solución.
El problema es que no tenemos la información necesaria para poder ayudarte.
Intentare explicarme, que, aunque no te lo creas tampoco soy muy dicho en palabras.
En primer lugar, creo que estas usando Access, no conozco la parte de programación por lo que no sé cómo se hace.
En segundo lugar, creo entender que los bultos están en la casilla blanca a la derecha del texto “Global Bultos hora:”. Creo que es un TextBox, pero en Access no se si utiliza los mismos términos. En el interior de la casilla se ve “ULTOS])/Suma([”.
Esta casilla debe tener un nombre que es lo que intentaba decirte Andres Leonardo.
Bien pues para la condición puedes usar el nombre del objeto o la formula que no veo completa.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 51
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Insertar condición en un código

Publicado por isidro (19 intervenciones) el 07/10/2020 09:37:47
Gracias Antoni Masana, me basta y me sobra con la buena predisposición de las personas. Agradezco y acepto tus disculpas.

Obviamente, a veces es complicado poder expresar en letras o imágenes el problema y que el mensaje que os llegue sea lo más concreto y resumido para poder dar una solución.

Sí, estoy utilizando Access, la casilla del informe donde se encuentra el valor la muestro en la primera foto, su nombre es BULTOS como se muestra en la vista diseño. En la última foto muestro la etiqueta asociada a ese cuadro de texto llamado BULTOS y el nombre de la etiqueta "ETIQUETA54"

Bultos es el nombre del objeto, pero por algún motivo el código no lo encuentra.

En fín, gracias infinitas por vuestra paciencia y os libero de esta pesadilla.

Cuídense la salud.


Salu2.
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