Combobox en visual fox 6.0

Hola quiero saber como trabajar con dos combos por ejemplo con el combo1 hacer que si tengo una base de datos con apellidos y nombres y hay en esa BD personas con el mismo apellido por ejemplo si hay 10 gonzalez; que el combo2 me muestren todos los nombres de las personas con ese apellido y que en el combo1 no me muestren todos los gonzales sino solamente un gonzalez, bueno esa es la idea no se si se entiende, espero me puedan ayudar necesito rendir mi ultima materia para recibirme

1 respuesta

Respuesta
1
Estimado/a chevecha:
Tengo una solución para ti:
En el evento "init" del form escribes el siguiente código:
** Genero el COMBO1 solamente con los Apellidos sin que se repitan.
Thisform.COMBO1.Clear
Select PERSONAS
Set Order to PERNOM
Go Top
Do While Not EOF()
_APE=APELLIDO
Do While APELLIDO=_APE And Not EOF()
Skip
EndDo
Thisform.COMBO1.AddItem(_APE)
EndDo
En evento "Click" del COMBO1 escribes el siguiente codigo:
** Genero el COMBO2 solamente con los nombres de las personas que tienen el apellido seleccionado en el COMBO1.
_APE=Alltrim(This.Value)
Select Recno(),* from PERSONAS Where APELLIDO=_APE Order By NOMBRES Into Cursor CURPER
Select CURPER
Go Top
Thisform.COMBO2.Clear
Do While Not EOF()
Thisform.COMBO2.Additem(APELLIDO+' '+NOMBRE+' '+Str(EXP_1,10)) && en las ultimas 10 posiciones guardo el puntero al registro de la Tabla PERSONAS
Skip
EndDo
Release CURPER
Thisform.COMBO2.Visible=.T.
Para localizar a la persona seleccionada en el COMBO2 dentro de la tabla PERSONAS, haz lo siguiente:
En el evento "click" del COMBO2 escribes el siguiente código:
_REG=Int(Val(Right(This.Value,10)))
Select PERSONAS
Go _REG
Wait APELLIDO+NOMBRE Wind
Espero te sirva para tu trabajo. SUERTE!!!.
PD:
Si no te funciona Cambia la sentencia:
Select Recno(),* from PERSONAS Where APELLIDO=_APE Order By NOMBRES Into Cursor CURPER
por esta:
Select Recno(),* from PERSONAS Where APELLIDO==_APE Order By NOMBRES Into Cursor CURPER

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas