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

¿confusion al momento de buscar?

Estas en el tema de ¿confusion al momento de buscar? en el foro de Visual Basic clásico en Foros del Web. hola. bueno les comento lo que necesito.: tengo una tabla donde guardo datos de una persona.. como por ejemplo cedula, monto de prestamo, deuda . ...
  #1 (permalink)  
Antiguo 23/11/2008, 19:19
 
Fecha de Ingreso: julio-2008
Mensajes: 205
Antigüedad: 15 años, 10 meses
Puntos: 1
¿confusion al momento de buscar?

hola. bueno les comento lo que necesito.: tengo una tabla donde guardo datos de una persona.. como por ejemplo cedula, monto de prestamo, deuda . etc..
entonces quiero que si busco ana persona, y si por ejemplo en el campo deuda no es cero me muestre un error.y que no puede hacer ningun calculo. de lo contrario , osea si es cero. quiere decir que no debe nada. entonces asi si me tiene que hacer los calculos.

el nombre de la tabla es pempresa, alli es donde teno guardados los datos,
cedula esta en la posicion (0)
y el campo que debe tomar en cuenta para ver si es cero o no esta en la pocision (9) llamado m_adeuda.

y en el formulario tengo el texto cedula y el texto m_adeuda. eso es lo que he hecho y no me funciona.


If cedula.Text = pempresa.Recordset(0) And pempresa.Recordset(9) = "0" Then
MsgBox "Usted No Tiene Prestamos Pendientes", vbInformation, "Disponible"
montoabonar = Val(monto.Text) * Abs(Text1.Text) / 100
montoabonar = Format(montoabonar, "##0")
agregar.Enabled = True
Command1.Enabled = False
monto.Enabled = False
Text1.Enabled = False
m_adeuda.Text = monto.Text
pempresa.Refresh

End If
If cedula.Text = pempresa.Recordset(0) And pempresa.Recordset(9) <> "0" Then
MsgBox "Usted Tiene Un Prestamo Pendiente", vbInformation, "Prestamo"
cedula.Text = ""
nombre.Text = ""
codigo.Text = ""
montoabonar.Text = ""
End If
  #2 (permalink)  
Antiguo 24/11/2008, 01:43
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ¿confusion al momento de buscar?

Cita:
Iniciado por principefreddy Ver Mensaje
hola. bueno les comento lo que necesito.: tengo una tabla donde guardo datos de una persona.. como por ejemplo cedula, monto de prestamo, deuda . etc..
entonces quiero que si busco ana persona, y si por ejemplo en el campo deuda no es cero me muestre un error.y que no puede hacer ningun calculo. de lo contrario , osea si es cero. quiere decir que no debe nada. entonces asi si me tiene que hacer los calculos.

el nombre de la tabla es pempresa, alli es donde teno guardados los datos,
cedula esta en la posicion (0)
y el campo que debe tomar en cuenta para ver si es cero o no esta en la pocision (9) llamado m_adeuda.

y en el formulario tengo el texto cedula y el texto m_adeuda. eso es lo que he hecho y no me funciona.


If cedula.Text = pempresa.Recordset(0) And pempresa.Recordset(9) = "0" Then
MsgBox "Usted No Tiene Prestamos Pendientes", vbInformation, "Disponible"
montoabonar = Val(monto.Text) * Abs(Text1.Text) / 100
montoabonar = Format(montoabonar, "##0")
agregar.Enabled = True
Command1.Enabled = False
monto.Enabled = False
Text1.Enabled = False
m_adeuda.Text = monto.Text
pempresa.Refresh

End If
If cedula.Text = pempresa.Recordset(0) And pempresa.Recordset(9) <> "0" Then
MsgBox "Usted Tiene Un Prestamo Pendiente", vbInformation, "Prestamo"
cedula.Text = ""
nombre.Text = ""
codigo.Text = ""
montoabonar.Text = ""
End If
Hola, si el campo deuda (Recordset(9)) es numérico, quítale las comillas.
Y no es necesario que repitas la condición, puedes utilizar la instrucción Else.

Código:
If cedula.Text = pempresa.Recordset(0) And pempresa.Recordset(9) = 0 Then
MsgBox "Usted No Tiene Prestamos Pendientes", vbInformation, "Disponible"
    montoabonar = Val(monto.Text) * Abs(Text1.Text) / 100
    montoabonar = Format(montoabonar, "##0")
    agregar.Enabled = True
    Command1.Enabled = False
    monto.Enabled = False
    Text1.Enabled = False
    m_adeuda.Text = monto.Text
    pempresa.Refresh

Else
MsgBox "Usted Tiene Un Prestamo Pendiente", vbInformation, "Prestamo"
cedula.Text = ""
nombre.Text = ""
codigo.Text = ""
montoabonar.Text = ""
End If
  #3 (permalink)  
Antiguo 24/11/2008, 07:11
 
Fecha de Ingreso: julio-2008
Mensajes: 205
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: ¿confusion al momento de buscar?

hola. mira lo que me sale es que tengo un prestamo pendiente. osea no me esta funcionando.. necesito hacer como una busqueda primero y comparar. me puedes ayudar a solucionarlo, yo he intentado de muchas maneras poero no me sale.. cuando busco a un empleado que no tienen prestamos , es decir, que en la tabla en la posicion (9) es cero me deberia de procesar los calculos y no lo hace., para todos me sale es el mensaje de usted tiene un prestamo pendiente.
  #4 (permalink)  
Antiguo 24/11/2008, 08:04
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ¿confusion al momento de buscar?

Cita:
Iniciado por principefreddy Ver Mensaje
hola. mira lo que me sale es que tengo un prestamo pendiente. osea no me esta funcionando.. necesito hacer como una busqueda primero y comparar. me puedes ayudar a solucionarlo, yo he intentado de muchas maneras poero no me sale.. cuando busco a un empleado que no tienen prestamos , es decir, que en la tabla en la posicion (9) es cero me deberia de procesar los calculos y no lo hace., para todos me sale es el mensaje de usted tiene un prestamo pendiente.
Vamos a ver:
¿el empleado está en el campo 0 del recordset?
¿estás cambiando "0" por 0 (sin comillas), como indiqué?

  #5 (permalink)  
Antiguo 24/11/2008, 08:09
 
Fecha de Ingreso: julio-2008
Mensajes: 205
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: ¿confusion al momento de buscar?

si el codigo esta como me lo indicaste..
  #6 (permalink)  
Antiguo 24/11/2008, 08:14
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ¿confusion al momento de buscar?

Cita:
Iniciado por principefreddy Ver Mensaje
si el codigo esta como me lo indicaste..
Pero.. ¿haces un bucle al recordset, recorriendo los registros del mismo?

  #7 (permalink)  
Antiguo 24/11/2008, 08:22
 
Fecha de Ingreso: julio-2008
Mensajes: 205
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: ¿confusion al momento de buscar?

mira lo que le coloque... cuando la cedula es igual pero en la posicio (9) no es cero no me hace nada, (no me muestra el mensaje), de lo contrario si me hace los calculos- que me puede faltar?

c = "trim(cedulaempleado)='" & Trim(cedula.Text) & "'"
pempresa.Recordset.FindFirst c
If pempresa.Recordset.NoMatch Then
' aqui le digo que si las cedulas son iguales y en la posicion (9)= 0
' me haga los calculos...
If pempresa.Recordset(0) = cedula.Text And pempresa.Recordset(9) <> 0 Then
montoabonar = Val(monto.Text) * Abs(Text1.Text) / 100
montoabonar = Format(montoabonar, "##0")
agregar.Enabled = True
Command1.Enabled = False
monto.Enabled = False
Text1.Enabled = False
m_adeuda.Text = monto.Text
pempresa.Refresh
Else
MsgBox "Usted Tiene Un Prestamo Pendiente", vbInformation, "Prestamo"
Command2.Enabled = True
cedula.Text = ""
nombre.Text = ""
codigo.Text = ""
montoabonar.Text = ""
End If
End If
End Sub
  #8 (permalink)  
Antiguo 24/11/2008, 08:43
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ¿confusion al momento de buscar?

Cita:
Iniciado por principefreddy Ver Mensaje
mira lo que le coloque... cuando la cedula es igual pero en la posicio (9) no es cero no me hace nada, (no me muestra el mensaje), de lo contrario si me hace los calculos- que me puede faltar?

c = "trim(cedulaempleado)='" & Trim(cedula.Text) & "'"
pempresa.Recordset.FindFirst c
If pempresa.Recordset.NoMatch Then
' aqui le digo que si las cedulas son iguales y en la posicion (9)= 0
' me haga los calculos...
If pempresa.Recordset(0) = cedula.Text And pempresa.Recordset(9) <> 0 Then
montoabonar = Val(monto.Text) * Abs(Text1.Text) / 100
montoabonar = Format(montoabonar, "##0")
agregar.Enabled = True
Command1.Enabled = False
monto.Enabled = False
Text1.Enabled = False
m_adeuda.Text = monto.Text
pempresa.Refresh
Else
MsgBox "Usted Tiene Un Prestamo Pendiente", vbInformation, "Prestamo"
Command2.Enabled = True
cedula.Text = ""
nombre.Text = ""
codigo.Text = ""
montoabonar.Text = ""
End If
End If
End Sub
Fíjate lo que estás poniendo aquí:

If pempresa.Recordset.NoMatch Then

Esto quiere decir que no encontró ningún registro.

Y a continuación pones:

If pempresa.Recordset(0) = cedula.Text And ... Then

La condición marcada en rojo nunca se va a producir.

El valor que devuelve la función NoMatch es True si no se encontró el registro deseado

  #9 (permalink)  
Antiguo 24/11/2008, 08:58
 
Fecha de Ingreso: julio-2008
Mensajes: 205
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: ¿confusion al momento de buscar?

ok.. como quedaria entonces. estoy trabajando por eso tardo en responder.
  #10 (permalink)  
Antiguo 24/11/2008, 09:17
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ¿confusion al momento de buscar?

Cita:
Iniciado por principefreddy Ver Mensaje
ok.. como quedaria entonces. estoy trabajando por eso tardo en responder.
A ver, prueba así:

Código:
pempresa.Recordset.FindFirst "cedulaempleado='" & cedula.Text & "'"
' el campo "cedulaempleado" su ponemos que es tipo Text
If pempresa.Recordset.NoMatch Then
    ' la cedula digitada no existe, salimos del procedimiento
    MsgBox "La cedula del empleado no existe."
    Exit Sub
End If
' el campo cedula existe, sólo tienes que comprobar si el campo 9 es cero
If pempresa.Recordset(9) = 0 Then
    ' el campo 9 es cero, no tiene deuda pendiente
    montoabonar = Val(monto.Text) * Abs(Text1.Text) / 100
    montoabonar = Format(montoabonar, "##0")
    agregar.Enabled = True
    Command1.Enabled = False
    monto.Enabled = False
    Text1.Enabled = False
    m_adeuda.Text = monto.Text
    pempresa.Refresh
Else
    ' el campo 9 tiene un valor diferente de cero
    MsgBox "Usted Tiene Un Prestamo Pendiente", vbInformation, "Prestamo"
    Command2.Enabled = True
    cedula.Text = ""
    nombre.Text = ""
    codigo.Text = ""
    montoabonar.Text = ""
End If
Como verás he eliminado la variable "c" que no sirve para nada.

  #11 (permalink)  
Antiguo 24/11/2008, 12:29
 
Fecha de Ingreso: julio-2008
Mensajes: 205
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: ¿confusion al momento de buscar?

cuando el empleado tiene un prestamo. le aparece el mensaje que tiene un prestamo pendiente. pero si no tiene nada dice que la cedula no existe.
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 04:32.