• Viernes 8 de Noviembre de 2024, 19:20

Autor Tema:  Dudas Con El "if"  (Leído 2149 veces)

gabo87

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Dudas Con El "if"
« en: Martes 15 de Mayo de 2007, 16:40 »
0
Hola a todos, me gustaria saber si alguien puede respoder mi siguiente duda
No se si se puede o si hay una forma mas sencilla de hacerla, bueno el problema que tengo es que cuando un usuario ingresa en un textbox que esta declarado como single se equivoca e ingresa texto por ejemplo, entonces en la subrutina se produce el error, yo quisiera saber si hay forma de evitar dicho error, yo pense en un if preguntando una cosa asi if text1 <> text1 as single (estuve probando de varias mameras y no se pudo, quizas no se pueda hacer o se hace de alguna otra mamera)
Desde ya quien/quienes puedan responder esta pregunta muchas gracias!.
Salu2
Gabriel

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Dudas Con El "if"
« Respuesta #1 en: Martes 15 de Mayo de 2007, 17:54 »
0
Para evitarlo  podes utilizar un
Código: Text
  1.  
  2. On Error GoTo Maneja_Error
  3.  
  4. ' tu codigo
  5.  
  6.  
  7.  
  8. Maneja_Error:
  9.    'aca controlarias el error
  10.  


Pero en realidad lo que tenes que hacer es verificar lo que el usuario esta ingresando en el texbox , podrias hacerlo en el evento LOSTFOCUS y verificas los datos ingresados, y si todo bien dejas que el usuario se mueva de posicion de lo contrario le das una alerta...

 :comp:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



gabo87

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Dudas Con El "if"
« Respuesta #2 en: Martes 15 de Mayo de 2007, 19:04 »
0
Cita de: "ElNapster"
Para evitarlo  podes utilizar un
Código: Text
  1.  
  2. On Error GoTo Maneja_Error
  3.  
  4. ' tu codigo
  5.  
  6.  
  7.  
  8. Maneja_Error:
  9.    'aca controlarias el error
  10.  


Pero en realidad lo que tenes que hacer es verificar lo que el usuario esta ingresando en el texbox , podrias hacerlo en el evento LOSTFOCUS y verificas los datos ingresados, y si todo bien dejas que el usuario se mueva de posicion de lo contrario le das una alerta...

 :comp:
Estuve probando y la verdad no me doy cuenta como hacerlo  :(

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Dudas Con El "if"
« Respuesta #3 en: Martes 15 de Mayo de 2007, 19:09 »
0
:o  ..... como lo estas haciendo ?
envia el codigo o parte de el .. para ver como lo estas haciendo


 ;)
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



gabo87

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Dudas Con El "if"
« Respuesta #4 en: Martes 15 de Mayo de 2007, 19:22 »
0
Cita de: "ElNapster"
:o  ..... como lo estas haciendo ?
envia el codigo o parte de el .. para ver como lo estas haciendo


 ;)
esto es lo que vengo haciendo, es un trabaja práctico

Option Explicit
Dim aux, i, a, ban As Integer
Private Sub compras_Click()
    lbl1.Visible = True
    lbl2.Visible = True
    lbl3.Visible = True
    lbl4.Visible = True
    txtcodart.Visible = True
    txtnombre.Visible = True
    txtcanting.Visible = True
    txtunidades.Visible = True
    ingresar.Visible = True
    Form1.Caption = "             Compra, venta y stock de mercaderías"
End Sub

Private Sub ingresar_Click()
    If (txtcodart <> "") And (txtnombre <> "") And (txtcanting <> "") And (txtunidades <> "") Then
        If (txtunidades = "U") Or (txtunidades = "K") Or (txtunidades = "L") Or (txtunidades = "M") Or (txtunidades = "u") Or (txtunidades = "k") Or (txtunidades = "l") Or (txtunidades = "m") Then
            If txtcanting > 0 Then
                aux = aux + 1
                ban = 0
                If aux = 1 Then
                    heterogeneo(aux).stkCodArt = txtcodart
                    heterogeneo(aux).stkNomArt = txtnombre
                    heterogeneo(aux).stkCant = txtcanting
                    heterogeneo(aux).stkUnidad = txtunidades
                    txtcodart = ""
                    txtnombre = ""
                    txtcanting = ""
                    txtunidades = ""
                    txtcodart.SetFocus
                    MsgBox "Aceptado"
                Else
                    For i = 1 To 6
                        If i < 6 Then
                            If txtcodart = heterogeneo(i).stkCodArt Then
                                heterogeneo(i).stkCant = heterogeneo(i).stkCant + txtcanting
                                txtcodart = ""
                                txtnombre = ""
                                txtcanting = ""
                                txtunidades = ""
                                txtcodart.SetFocus
                                aux = aux - 1
                                ban = 1
                                MsgBox "Aceptado"
                            End If
                        Else
                                If aux < 6 Then
                                    If heterogeneo(aux).stkCodArt = "" Then
                                        heterogeneo(aux).stkCodArt = txtcodart
                                        heterogeneo(aux).stkNomArt = txtnombre
                                        heterogeneo(aux).stkCant = txtcanting
                                        heterogeneo(aux).stkUnidad = txtunidades
                                        txtcodart = ""
                                        txtnombre = ""
                                        txtcanting = ""
                                        txtunidades = ""
                                        txtcodart.SetFocus
                                        ban = 1
                                        MsgBox "Aceptado"
                                        Exit Sub
                                    End If
                                Else
                                    If ban = 0 Then
                                        MsgBox "Rechazado"
                                        txtcodart = ""
                                        txtnombre = ""
                                        txtcanting = ""
                                        txtunidades = ""
                                        txtcodart.SetFocus
                                    End If
                                End If
                        End If
                    Next
                End If
            Else
                MsgBox "Debe ingresar valores numérios positivos"
                txtcanting = ""
                txtcanting.SetFocus
                Exit Sub
            End If
        Else
            MsgBox "Debe ingresar un valor correcto, U, K, L o M"
            txtunidades = ""
            txtunidades.SetFocus
            Exit Sub
        End If
    Else
        If txtcodart = "" Then
            MsgBox "Deben estar completos todos los campos"
            txtcodart.SetFocus
            Exit Sub
        Else
            If txtnombre = "" Then
                MsgBox "Deben estar completos todos los campos"
                txtnombre.SetFocus
                Exit Sub
            Else
                If txtcanting = "" Then
                    MsgBox "Deben estar completos todos los campos"
                    txtcanting.SetFocus
                    Exit Sub
                Else
                    If txtunidades = "" Then
                        MsgBox "Deben estar completos todos los campos"
                        txtunidades.SetFocus
                        Exit Sub
                    End If
                End If
            End If
        End If
    End If
End Sub
-----------------------------------------------
Private Sub txtcanting_LostFocus()
    if txtcanting
    Beep                                               ???
    txtcanting.SetFocus
End Sub
------------------------------------------------

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Dudas Con El "if"
« Respuesta #5 en: Martes 15 de Mayo de 2007, 19:31 »
0
Yo lo haria de esta forma (te pongo instrucciones ficticias no son reales pero es para que te des una idea )


Código: Text
  1. Private Sub Verifica
  2.  
  3. IF txtcodigo &#60;&#62; &#34;&#34;  then
  4.    txtcantidad.setfocus
  5. else
  6.    Msgbox &#34;Ingrese los datos necesarios para poder seguir el proceso&#34;
  7.    txtcodigo.setfocus
  8. end if
  9.  
  10. End sub
  11.  


Código: Text
  1. Private Sub txtcodigo_LostFocus()
  2.    Call verifica
  3. End Sub
  4.  
Este es un ejemplo que es para verificar solo un textbox ya vos te das una idea de como va la cosa...

Espero te sirva.. y cualquier cosa estoy a las ordenes  ;)

 :comp:

PD.
Puedes tambien enviarle como parametro a la funcion VERIFICA el objeto textbox para que el verifique y no tengas duplicidad de codigo en tu programa.... y le enviarias tambien como parametro el siguiente objeto textbox para que le de el setfocus si todo esta bien ... !!!!!!
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



gabo87

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Dudas Con El "if"
« Respuesta #6 en: Martes 15 de Mayo de 2007, 19:35 »
0
claro entiendo, el problema es que ahi esta preugntando si el text box esta en blanco, pero si pones formato texto cuando en realidad hay q ingresar numérico me da error, yo ese IF ya lo habia hecho mas arriba, me dijieron q hay q hacer algo con keyascii pero no se bien, el que me lo dijo no se acordaba mucho me dijo q lo iba a buscar..

osea no se si entendes lo q te digo?

Gracias por la ayuda!

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Dudas Con El "if"
« Respuesta #7 en: Martes 15 de Mayo de 2007, 19:50 »
0
Bueno amigo .. tienes que ser un poco mas investigador para cuando tengas preguntas .... porque aca casi que esta todo ya  :P  (bueno en el foro) porque tienes que utilizar el buscador del foro con palabras claves para que se realice mejor la busqueda, te envio este link que encontre y solo es que lo incorpores a lo que tengas ....

Solo numeros

 :comp:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



gabo87

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Dudas Con El "if"
« Respuesta #8 en: Martes 15 de Mayo de 2007, 20:59 »
0
Listo gracias! despues de que lo prueba te digo
gracias por todo

gabo87

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Dudas Con El "if"
« Respuesta #9 en: Miércoles 16 de Mayo de 2007, 04:26 »
0
hola de nuevo
estuve vien el link q me dejaste y estuve probando y bien, esta bueno
tmb vi otra alternativa q me gusto
la dejo por si alguien le intereza

Private Sub txtcanting_KeyPress(KeyAscii As Integer)

    If InStr("0123456789" & Chr(8), Chr(KeyAscii)) = 0 Then KeyAscii = 0

End Sub

salu2
Gabriel