Resultados 1 al 3 de 3

Duda Visual Basic...

Esta es una discusión para el tema Duda Visual Basic... en el foro Programación, bajo la categoría Webmasters y Programadores; Hola amigos. Saludos. Tengo un problema de programación con Visual Basic, hice una mimi aplicación que convierte un número determinado de SEGUNDOS en HORAS, MINUTOS Y SEGUNDOS. <div class='bbimg'> </div> ...
Página: 1


  1. #1
    Member

    Fecha de ingreso
    09 ene, 09
    Mensajes
    84
    Hola amigos.

    Saludos.



    Tengo un problema de programación con Visual Basic, hice una mimi aplicación que convierte un número determinado de SEGUNDOS en HORAS, MINUTOS Y SEGUNDOS.



    <div class='bbimg'></div>



    Acá el código...



    Private Sub cmdCalcular_Click()



    Dim Horas As Integer

    Dim Minutos As Integer

    Dim Segundos As Integer



    Horas = Val(Text1.Text) \ 3600

    Minutos = Val(Text1.Text Mod 3600) \ 60

    Segundos = Val((Text1.Text Mod 3600) Mod 60)



    Text2.Text = Horas

    Text3.Text = Minutos

    Text4.Text = Segundos



    End Sub



    Private Sub cmdSalir_Click()



    Unload Me



    End Sub



    Private Sub cmdNuevo_Click()



    Text1.Text = ""

    Text2.Text = ""

    Text3.Text = ""

    Text4.Text = ""

    Text1.SetFocus



    End Sub



    Private Sub Form_Load()



    Text2.Text = ""

    Text3.Text = ""

    Text4.Text = ""



    End Sub



    Private Sub Text1_KeyPress(KeyAscii As Integer)



    If Not Chr(KeyAscii) = vbBack Then

    If Not IsNumeric(Chr(KeyAscii)) Then

    Beep

    KeyAscii = vbEmpty

    End If

    End If



    End Sub



    Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)



    If Val(Text1.Text) > 86400 Then

    MsgBox "No se debe rebasar la cifra de 86400, ya que el sistema sólo tiene que capturar un máximo de 24 horas exactas."

    Text1.Text = ""

    KeyAscii = vbEmpty ElseIf Val(Text1.Text) < 0 Then

    MsgBox "Número no permitido"

    Text1.Text = ""

    KeyAscii = vbEmpty

    End If



    End Sub



    Private Sub Text1_Validate(Cancel As Boolean)



    (NO ENTIENDO LA PRIMERA LINE DE ESTE CODIGO, SI ALGUIEN LA PUDIERA COMENTAR SE LOS HE DE AGRADECER)

    If Not Me.ActiveControl.Name = "command3" Then

    If Text1.Text = "" Then

    MsgBox "Debes capturar un número, el campo no debe quedar vacío"

    &#39;Text1.SetFocus

    Cancel = True

    End If

    End If



    End Sub







    El problema surge cuando al textbox le doy calcular sin haber capturado nada, me mandaba un error, ya lo corregí sólo que ahora al darle SALIR no me deja.



    ¿Cómo debo poner el código para dejar mi aplicación tal y como está pero que me deje cerrar la aplicación desde el botón salir?



    Gracias.

     
     
  2. #2
    Super Moderador Avatar de rob1104

    Fecha de ingreso
    07 mar, 05
    Ubicación
    México
    Mensajes
    2,548
    Hola, esa forma de corregirlo no esta del todo bien. Bastaba con un simple
    if text1.text="" then exit sub
    al principio del codigo del evento click del boton calcular.



    Lo que hace esta linea:
    Código:
    If Not Me.ActiveControl.Name = "command3" Then
    , precisamente por que esta en el evento validar del text1.text es verificar que se haya pulsado el boton command3 si no se pulsa no te dejara hacer nada mas, es por eso que no puedes salir.



    Saludos

     
     
  3. #3
    Member

    Fecha de ingreso
    09 ene, 09
    Mensajes
    84
    Gracias…



    Talvez me he excedido en el código y lo estoy haciendo demasiado complejo…



    Visual Basic 6.0 hace esto por default:



    Ejemplo: Botón Calcular en el evento Click (checar imágen).-



    Si yo le doy clic al botón calcular sin haber capturado nada en el textbox, me debe mandar un mensaje que me diga más o menos: “Debes capturar algo para poder hacer esto otro”, hasta aquí no tengo problema, el problema es que cuando acepto el Msgbox ya no me regresa al formulario si no que me manda el Run Time Error 13 “Type Mismatch”.



    Lo que deseo hacer es que siempre que el textbox esté vacío y yo de clic en calcular, me mande siempre un msgbox "debes capturar......." y cuando le de aceptar al msgbox me mande el foco al textbox.



    Un amigo me aconsejo usar:



    Private Sub Text1_Validate(Cancel As Boolean)



    &#39;If Not Me.ActiveControl.Name = "command3" Then

    &#39; MsgBox "Debes capturar un número, el campo no debe quedar vacío"

    &#39;Text1.SetFocus

    &#39; Cancel = True

    &#39;End If



    End Sub



    El problema con éste código es, 1 que no entiendo la primera línea de código, me gustaría que alguien me dijera, ah mira, “le estas diciendo que valide el textbox pero siempre y cuando…..etc.””” algo así estaría bien porque no entiendo nada…nunca he usado el me.active.control.name

    Y 2.- El problema mayor es que si este código lo aplico, me hace el validate en tres botones de comando que tengo “calcular”, “nuevo” y “salir”…es aquí cuando ya no puedo salir con el botón salir, solo cierro dando clic en el x del formulario…



    Cambie todo el código del Validate por esta línea en el botón calcular:



    If Text1.Text = "" Then

    MsgBox "Debes capturar un número para poder hacer un cálculo de TIEMPO"

    Cancel = True

    Text1.SetFocus

    End If



    Pero hasta ahora sigo con el error después del msgbox





    Gracias.

     
     

Temas similares

  1. Visual Basic 6.0
    Por josejam en el foro Programación
    Respuestas: 2
    Último mensaje: 23/09/2009, 17:45
  2. Duda Visual Basic
    Por Spaguetti en el foro Programación
    Respuestas: 3
    Último mensaje: 15/01/2009, 18:13
  3. Duda con visual basic
    Por lava_volcanica en el foro Programación
    Respuestas: 9
    Último mensaje: 20/04/2008, 05:17
  4. Visual basic
    Por astalamuerte en el foro Programación
    Respuestas: 1
    Último mensaje: 15/03/2008, 19:52
  5. Cambios entre Visual Basic 6 y Visual Studio 2005
    Por CrazyBoss en el foro Programación
    Respuestas: 6
    Último mensaje: 25/04/2006, 05:28

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •