Ver Mensaje Individual
  #4  
Antiguo 09-02-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En KeyField únicamente podrás poner valores que correspondan al campo que hayas especificado en KeyField. Lo que te dice ramiretor es complentamente correcto pero me parece que no tienes en claro cómo usar la componente.

En lo referente a lo que lista la componente hay tres propiedades básicas: ListSource, ListField y KeyField. ListSource apunta al DataSet (Table, Query, etc.) de donde tomes los valores. ListField es el campo que quieres que aparezca en el combo y KeyField es la llave primaria de la tabla.

Para cambiar el elemento listado en el combo debes asignar algún valor a KeyValue que corresponda a un valor de KeyField. Da la impresión de que en tu caso, el nombre de la persona es lo que tienes asignado en ListField y no en KeyField. Si quieres cambiar el elemento a partir del nombre (ListField) lo que puedes hacer es primero un Locate en la tabla para colocarla en el registro adecuado y entonces asignar a KeyField el valor del campo KeyField correspondiente:

Código Delphi [-]
if Query1.Locate('nombre', 'daniel carrillo', []) then
  DBLookupComboBox1.KeyValue := Query1.FieldByName(llave primaria).AsInteger;

// Saludos
Responder Con Cita