Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Volver a realizare una funcion

Estas en el tema de Volver a realizare una funcion en el foro de Visual Basic clásico en Foros del Web. Hola a todos, tengo esta funcion: Código: Private Sub cmbnombre_Click() If Trim(cmbdesc) = "" Then GoTo Nodescuento If Trim(txtcant) = "" Then txtcant = "1" ...
  #1 (permalink)  
Antiguo 08/03/2011, 14:09
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años
Puntos: 0
Volver a realizare una funcion

Hola a todos,
tengo esta funcion:

Código:
Private Sub cmbnombre_Click()
            
    If Trim(cmbdesc) = "" Then GoTo Nodescuento

    If Trim(txtcant) = "" Then
    txtcant = "1"
    End If
    If lblprec = "0" Then
    lblprec = Val(txtprecio) * Val(txtcant)
    lbldesc = Val(cmbdesc) / 100 * Val(lblprec)
    lblrest = Val(lblprec) - Val(lbldesc)
    lblttotal = Val(lblprec) - Val(cmbdesc) / 100 * Val(lblprec)
    
    End If

    If Not Trim(txtrecv) = "" Then
    lbldev = Val(txtrecv) - Val(lblprec) + Val(lbldesc)
    End If
Nodescuento:

    If Trim(txtcant) = "" Then
    txtcant = "1"
    End If
    If lblprec = "0" Then
    lblprec = Val(txtprecio) * Val(txtcant)
    lblttotal = Val(txtrecv) - Val(lblprec)
    End If
    
    If Not Trim(txtrecv) = "" Then
    lbldev = Val(txtrecv) - Val(lblprec)
    End If
    
End Sub
quisiera ahora tener un boton, que cuando haga click
vuelva a realizar el calculo que realizo en "cmbnombre"

como tendria que hacer?
gracias
  #2 (permalink)  
Antiguo 08/03/2011, 15:57
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 4 meses
Puntos: 19
Respuesta: Volver a realizare una funcion

Lo llamas con

Call BLABLA

Código vb:
Ver original
  1. Private Sub BLABLA()
  2.     If Trim(cmbdesc) = "" Then GoTo Nodescuento
  3.  
  4.     If Trim(txtcant) = "" Then
  5.     txtcant = "1"
  6.     End If
  7.     If lblprec = "0" Then
  8.     lblprec = Val(txtprecio) * Val(txtcant)
  9.     lbldesc = Val(cmbdesc) / 100 * Val(lblprec)
  10.     lblrest = Val(lblprec) - Val(lbldesc)
  11.     lblttotal = Val(lblprec) - Val(cmbdesc) / 100 * Val(lblprec)
  12.    
  13.     End If
  14.  
  15.     If Not Trim(txtrecv) = "" Then
  16.     lbldev = Val(txtrecv) - Val(lblprec) + Val(lbldesc)
  17.     End If
  18. Nodescuento:
  19.  
  20.     If Trim(txtcant) = "" Then
  21.     txtcant = "1"
  22.     End If
  23.     If lblprec = "0" Then
  24.     lblprec = Val(txtprecio) * Val(txtcant)
  25.     lblttotal = Val(txtrecv) - Val(lblprec)
  26.     End If
  27.    
  28.     If Not Trim(txtrecv) = "" Then
  29.     lbldev = Val(txtrecv) - Val(lblprec)
  30.     End If
  31. End Sub
  #3 (permalink)  
Antiguo 09/03/2011, 10:28
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 6 meses
Puntos: 47
Respuesta: Volver a realizare una funcion

Cita:
Iniciado por musicale Ver Mensaje
Hola a todos,
tengo esta funcion:

Código:
Private Sub cmbnombre_Click()
            
    If Trim(cmbdesc) = "" Then GoTo Nodescuento

    If Trim(txtcant) = "" Then
    txtcant = "1"
    End If
    If lblprec = "0" Then
    lblprec = Val(txtprecio) * Val(txtcant)
    lbldesc = Val(cmbdesc) / 100 * Val(lblprec)
    lblrest = Val(lblprec) - Val(lbldesc)
    lblttotal = Val(lblprec) - Val(cmbdesc) / 100 * Val(lblprec)
    
    End If

    If Not Trim(txtrecv) = "" Then
    lbldev = Val(txtrecv) - Val(lblprec) + Val(lbldesc)
    End If
Nodescuento:

    If Trim(txtcant) = "" Then
    txtcant = "1"
    End If
    If lblprec = "0" Then
    lblprec = Val(txtprecio) * Val(txtcant)
    lblttotal = Val(txtrecv) - Val(lblprec)
    End If
    
    If Not Trim(txtrecv) = "" Then
    lbldev = Val(txtrecv) - Val(lblprec)
    End If
    
End Sub
quisiera ahora tener un boton, que cuando haga click
vuelva a realizar el calculo que realizo en "cmbnombre"

como tendria que hacer?
gracias
Simplemente en el boton:
Código vb:
Ver original
  1. cmbnombre_Click
  #4 (permalink)  
Antiguo 09/03/2011, 12:48
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años
Puntos: 0
Respuesta: Volver a realizare una funcion

es que cmbnombre no es un boton, sino una combobox, che ho dato la funzione che automaticamente cuando se seleccione el nombre del utente, haga el calculo,
pero ahora quiero meter un boton que controle ese calculo hecho y no encuentro el modo.
disculpen mi ignorancia en materia.

gracias
  #5 (permalink)  
Antiguo 09/03/2011, 12:56
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años
Puntos: 0
Respuesta: Volver a realizare una funcion

muestro todo el codigo, para facilitar la comprencion, seguramente hay muchos errore y eso es porque no soy bueno en materi, disculpen..
Código:
Option Explicit

Enum EACCION
    AGREGAR_REGISTRO = 0
    EDITAR_REGISTRO = 1
End Enum

Public IdRegistro
Public ACCION As EACCION

Public Sub cmbnombre_LostFocus()
            
    If Trim(cmbdesc) = "" Then GoTo Nodescuento

    If Trim(txtcant) = "" Then
    txtcant = "1"
    End If
    If lblprec = "0" Then
    lblprec = Val(txtprecio) * Val(txtcant)
    lbldesc = Val(cmbdesc) / 100 * Val(lblprec)
    lblrest = Val(lblprec) - Val(lbldesc)
    lblttotal = Val(lblprec) - Val(cmbdesc) / 100 * Val(lblprec)
    
    End If

    If Not Trim(txtrecv) = "" Then
    lbldev = Val(txtrecv) - Val(lblprec) + Val(lbldesc)
    End If

Nodescuento:

    If Trim(txtcant) = "" Then
    txtcant = "1"
    End If
    If lblprec = "0" Then
    lblprec = Val(txtprecio) * Val(txtcant)
    lblttotal = Val(txtrecv) - Val(lblprec)
    End If
    
    If Not Trim(txtrecv) = "" Then
    lbldev = Val(txtrecv) - Val(lblprec)
    End If
    
End Sub


Private Sub Form_Load()
cmbtrat.AddItem "Manicura"
cmbtrat.AddItem "Manicura Francesa"
cmbtrat.AddItem "Manicura Spa"
cmbtrat.AddItem "Parafina Manos"
cmbtrat.AddItem "Pedicura"
cmbtrat.AddItem "Pedicura Francesa"
cmbtrat.AddItem "Pedicura Spa"
cmbtrat.AddItem "Parafina Pies"
cmbtrat.AddItem "Uñas de gel o acrilico"
cmbtrat.AddItem "Gel o acrilico en uña"
cmbtrat.AddItem "Relleno Manos"
cmbtrat.AddItem "Arreglo 1 Uña"
cmbtrat.AddItem "Gel o Acrilico Pies"
cmbtrat.AddItem "Relleno Pies"
cmbtrat.AddItem "Retitar Uñas de gel"
cmbtrat.AddItem "Diseño en 1 uña"
cmbtrat.AddItem "Cambio Esmalte"
cmbtrat.AddItem "Minx"
cmbtrat.AddItem "Extension de Pestanas"
cmbnombre.AddItem "Valentina"
cmbnombre.AddItem "Maria"
cmbnombre.AddItem "Federica"
cmbdesc.AddItem "1"
cmbdesc.AddItem "2"
cmbdesc.AddItem "3"
cmbdesc.AddItem "4"
cmbdesc.AddItem "5"



Do Until rs.EOF
'cargo la combobox con lo tratamientos
cmbtrat.AddItem rs!Tratamientos
rs.MoveNext
Loop

End Sub

Private Sub cmbtrat_LostFocus()


' Valida el Tratamiento que no este vacio
''''''''''''''''''''''''''''''''
If Trim(cmbtrat) = "" Then
MsgBox "Selecciona el Tratamiento", vbCritical, "Datos incompletos"
cmbtrat.SetFocus
Exit Sub
    
ElseIf Trim(cmbtrat) = "Manicura" Then txtprecio = "12"
ElseIf Trim(cmbtrat) = "Manicura Francesa" Then txtprecio = "15"
ElseIf Trim(cmbtrat) = "Manicura Spa" Then txtprecio = "22"
ElseIf Trim(cmbtrat) = "Parafina Manos" Then txtprecio = "10"
ElseIf Trim(cmbtrat) = "Pedicura" Then txtprecio = "25"
ElseIf Trim(cmbtrat) = "Pedicura Francesa" Then txtprecio = "28"
ElseIf Trim(cmbtrat) = "Pedicura Spa" Then txtprecio = "35"
ElseIf Trim(cmbtrat) = "Parafina Pies" Then txtprecio = "15"
ElseIf Trim(cmbtrat) = "Uñas de gel o acrilico" Then txtprecio = "45"
ElseIf Trim(cmbtrat) = "Gel o acrilico en uñas naturales" Then txtprecio = "30"
ElseIf Trim(cmbtrat) = "Relleno Manos" Then txtprecio = "25"
ElseIf Trim(cmbtrat) = "Arreglo 1 Uña" Then txtprecio = "5"
ElseIf Trim(cmbtrat) = "Gel o Acrilico Pies" Then txtprecio = "35"
ElseIf Trim(cmbtrat) = "Relleno Pies" Then txtprecio = "20"
ElseIf Trim(cmbtrat) = "Retitar Uñas de gel o acrilico" Then txtprecio = "15"
ElseIf Trim(cmbtrat) = "Diseño en 1 uña" Then txtprecio = "1,50"
ElseIf Trim(cmbtrat) = "Cambio Esmalte" Then txtprecio = "5"
ElseIf Trim(cmbtrat) = "Minx" Then txtprecio = "20"
ElseIf Trim(cmbtrat) = "Extension de Pestanas" Then txtprecio = "45"
    
      

' Valida el Precio que no este vacio
''''''''''''''''''''''''''''''''
ElseIf Trim(txtprecio) = "" Then
MsgBox "El Precio no puede estar vacio", vbCritical, "Datos incompletos"
txtprecio.SetFocus
   

   
End If
End Sub

Private Sub Command1_Click()
On Error GoTo ErrorSub
   
    
    ' Valida el Nombre que no este vacio
    ''''''''''''''''''''''''''''''''
    If Trim(cmbnombre) = "" Then
        MsgBox "El Nombre de registro no puede estar vacio", vbCritical, "Datos incompletos"
        cmbnombre.SetFocus
        Exit Sub
    End If
    
    'Agrega el registro
    '''''''''''''''''''''''''''''''
    
    Select Case ACCION
        Case EDITAR_REGISTRO
            cnn.Execute "UPDATE Personas set Nombre = '" & cmbnombre & _
                                         "', Tratamientos = '" & cmbtrat & _
                                         "', Precios = '" & lblttotal & _
                                         "' where Id = " & IdRegistro & ""
        

        
        
        Case AGREGAR_REGISTRO
            cnn.Execute "INSERT INTO Personas " & "(Nombre,Tratamientos,Precios,Fecha) VALUES('" & _
                                 cmbnombre & "','" & _
                                 cmbtrat & "','" & _
                                 lblttotal & "','" & _
                                 Format(Date, "dd/mm/yyyy") & "')"

    End Select
    
    rs.Requery 1

    DoEvents
    Unload Me
    Set frmnv = Nothing
Exit Sub
ErrorSub:
MsgBox Err.Description
End Sub
  #6 (permalink)  
Antiguo 09/03/2011, 13:01
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años
Puntos: 0
Respuesta: Volver a realizare una funcion

e probado a meter un boton que sea el que haga el calculo, pero si cambio algun valor y doy en el boton, no hace mas el calculo.

Private Sub calcula_Click()
If Trim(cmbdesc) = "" Then GoTo Nodescuento

If Trim(txtcant) = "" Then
txtcant = "1"
End If
If lblprec = "0" Then
lblprec = Val(txtprecio) * Val(txtcant)
lbldesc = Val(cmbdesc) / 100 * Val(lblprec)
lblrest = Val(lblprec) - Val(lbldesc)
lblttotal = Val(lblprec) - Val(cmbdesc) / 100 * Val(lblprec)

End If

If Not Trim(txtrecv) = "" Then
lbldev = Val(txtrecv) - Val(lblprec) + Val(lbldesc)
End If

Nodescuento:

If Trim(txtcant) = "" Then
txtcant = "1"
End If
If lblprec = "0" Then
lblprec = Val(txtprecio) * Val(txtcant)
lblttotal = Val(txtrecv) - Val(lblprec)
End If

If Not Trim(txtrecv) = "" Then
lbldev = Val(txtrecv) - Val(lblprec)
End If
End Sub

no se que hacer
  #7 (permalink)  
Antiguo 09/03/2011, 13:42
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años
Puntos: 0
Respuesta: Volver a realizare una funcion

RESUELTO, muchas gracias.

el error estaba en : If lblprec = "0" Then

Código:
    End If
    If lblprec > "0" Then
    lblprec = Val(txtprecio) * Val(txtcant)
    lbldesc = Val(cmbdesc) / 100 * Val(lblprec)
    lblrest = Val(lblprec) - Val(lbldesc)
    lblttotal = Val(lblprec) - Val(cmbdesc) / 100 * Val(lblprec)
    End If
cuando llegaba alli y veia que era mayor que cero, no me realizaba mas el calculo, saltaba a :

Código:
If lblprec = "0" Then
lblprec = Val(txtprecio) * Val(txtcant)
lblttotal = Val(txtrecv) - Val(lblprec)
End If
muchisimas gracias a todos.
y a F8.
jajajaja

Etiquetas: funcion, volver
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:09.