Problema con ComboBox en un Formulario

Tengo un ComboBox en un formulario pero al ejecutar que me muestre el valor de la propiedad Value no hace nada, incluso coloqué un Messagebox(message()) después de la instrucción pero no muestra nada tampoco. Pego aquí el código que presenta este comportamiento:

*** Marco al Cliente si aplica para Afiliación
        IF thisform.cboBanco.Value == "Mercantil"
            sql = "update clientes set campo4 = 'MER' where co_cli = '" + gcCo_cli + "'"
            tresult = SQLEXEC(tconnect, sql)
            MESSAGEBOX(MESSAGE())
            MESSAGEBOX("Se marcó el cliente para su posterior incorporación al archivo de Afiliación del Banco Mercantil.", 0, "Cliente para Afiliación Mercantil")
        ENDIF
        IF thisform.cboBanco.Value == "Del Sur"
            sql = "update clientes set campo4 = 'SUR' where co_cli = '" + gcCo_cli + "'"
            tresult = SQLEXEC(tconnect, sql)
            MESSAGEBOX("Se marcó el cliente para su posterior incorporación al archivo de Afiliación del Banco del Sur.", 0, "Cliente para Afiliación Del Sur")
            MESSAGEBOX(MESSAGE())
        ENDIF

Como pueden ver lo que hago en realidad es un Update en SQL con el valor del Value del Combo, pero ya probé anteriormente que me mostrara simplemente el valor actual en el Combo y nada, ni siquiera me muestra algo con el Messagebox(message()

1 respuesta

Respuesta
1

Espero que código lo tengas en el evento Interactivechange del combobox, porque de lo contrario no funcionará. Primero que nada al utilizar la propiedad VALUE para validar un IF puede darte problemas ya que pueden no coincidir los valores, puedes utilizar Alltrim() y Upper() para reducir errores de ese tipo y también puedes utilizar la propiedad ListIndex del combobox.

En el codigo que tu muestras no se ejecuta pues seguramente no se cumplen las condiciones para ejecutar las líneas dentro de IF... ENDIF...

Por ejemplo

Si al combobox le agregas "Mercantil" y "Del sur", ya sabes que el combobox solo tiene dos líneas por tanto si el usuario elige la línea numero 1 (Mercantil) la propiedad ListIndex del combobox será 1 entonces podrias hacer la comparación...
IF thisform.cboBanco.ListIndex = 1
    sql = "update clientes set campo4 = 'MER' where co_cli = '" + gcCo_cli + "'"
    tresult = SQLEXEC(tconnect, sql)
    Messagebox(message())
    MESSAGEBOX("Se marcó el cliente para su posterior incorporación al archivo de Afiliación del Banco Mercantil.", 0, "Cliente para Afiliación Mercantil")
ENDIF

¡Gracias! 

Saludos estimado Jerry,

Lo que me propusiste me funcionó a la perfección. Lo pasé al evento que me comentaste y perfecto. Aún estoy aprendiendo a programar en Fox 9. Por lo tanto si necesito nuevamente ayuda con algo espero puedas ayudarme de nuevo. Muchas gracias!

Buenas noches, puedes por favor darme tu correo electrónico para consultarte directamente. En este momento necesito mostrar en un Messagebox() el estado de un valor lógico y no me muestra nada, entonces pienso que debe ser algún truco o función de conversión que se le debe aplicar.

Agradezco tu respuesta altamente!

Ten presente que la idea de poder realizar las preguntas en esta comunidad es para que pueda serviles a otras personas; pero de igual manera aquí te dejo mi dirección de correo [email protected]

¡Gracias! 

Sí soy plenamente consciente del propósito de este foro, por ello pegaré aquí la respuesta que me des. No es por egoísmo que te lo pido solo por facilidad dada lo lento que es la conexión actualmente en mi país.

Gracias infinitas! Mi correo por si acaso es: [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas