Buenas noches: pido una vez mas me ayuden a descifrar el problema. Tengo un combobox con 2 columnas dentro de un formulario.
Este formulario se llena con datos de una Tabla donde tiene un campo que sería la unión (id_union), al desplayar el combo me debería mostrar las uniones que hay en la tabla “id_union+nombre_union”
De hecho eso lo hace. Pero cuando igualo los datos del formulario con los del registro de la tabla, NO MUESTRA el valor que esta grabado.
El COMBOBOX tiene las siguientes características:
INIT
This.Value=''
This.InputMask=REPLICATE('#',10)
This.Format='KL'
This.MaxLength=10
This.BoundColumn=2
This.ColumnCount = 2
This.ColumnWidths = "75,190"
This.RowSourceType= 6
This.RowSource = "DBFUniones.id_union,nombre"
This.Style= 2
This.FirstElement= 1
VALID:
Thisform.txtunion.Value=ALLTRIM(DBFUniones.nombre)
IF EMPTY(This.DisplayValue)
Thisform.txtunion.Value=''
ENDIF
INTERACTIVECHANGE:
Thisform.txtunion.Value=ALLTRIM(DBFUniones.nombre)
IF EMPTY(This.DisplayValue)
Thisform.txtunion.Value=''
ENDIF
CUANDO DEPOSITO LOS VALORES DEL REGISTRO DE LA TABLA EN EL FORMULARIO:
Thisform.txtCompite.Value=curPK.Compite
Thisform.txtInvitado.Value=curPK.Invitado
Thisform.CuitInicial=curPK.cuit
Thisform.txtid_club.Value=curPK.id_club
Thisform.txtid_union.Value=curPK.id_union
Thisform.txtid_union.DisplayValue=curPK.id_union
__union=curPK.id_union
Thisform.txtnombre.Value=curPK.nombre
Thisform.txtAbreviatura.Value=curPK.abreviatura
Thisform.txtcuit.Value=curPK.cuit
Thisform.txtFecha.Value=Mittod(curPK.fecha)
Thisform.txtTelefono.Value=curPK.telefono
Thisform.txtFax.Value=curPK.fax
Thisform.txtEmail.Value=curPK.email
Thisform.txtEOficial.Value=curPK.eoficial
Thisform.txtWeb.Value=curPK.web
Thisform.txtcoorden_x.Value=curPK.coorden_x
Thisform.txtcoorden_y.Value=curPK.coorden_y
Thisform.txtCPostal.Value=curPK.cpostal
Thisform.txtDomicilio.Value=curPK.domicilio
Thisform.txtLocalidad.Value=curPK.localidad
Thisform.txtProvincia.Value=curPK.provincia
Thisform.txtFundacion.Value=curPK.fundacion
Thisform.txtEmail.Valid
Thisform.txtEoficial.Valid
Thisform.txtFecha.Valid
Thisform.txtBuscar.Value=''
*Puse esta banderita para ver si trae realmente el dato guardado
*y si lo hace
SET ALTERNATE TO PEDRO
SET ALTERNATE ON
? 'PEDRO:'
_RecnoUnion=0
IF USED('DBFUniones')
*Fuerzo los datos para ver si me los muestra
SELECT DBFUniones
GO TOP
LOCATE FOR TRANSFORM(DBFUniones.id_union,'@Z ##########')==TRANSFORM(__union,'@Z ##########')
IF !FOUND()
? 'A:',DBFUniones.id_union,__union
GO TOP
ELSE
_RecnoUnion=RECNO('DBFUniones')
SELECT DBFUniones
GO _RecnoUnion
? 'B:',DBFUniones.id_union,__union
Thisform.txtid_union.DisplayValue=DBFUniones.id_union
Thisform.txtid_union.Value=DBFUniones.id_union
Thisform.txtUnion.Value=DBFUniones.nombre
Thisform.Refresh
ENDIF
ENDIF
SET ALTERNATE TO
Thisform.Refresh
Pero esto no anda…
Alguien tendrá algún ejemplo con combobox con multiples columnas para leerlo. Busco en google y no encuentro nada que me sirva.
Gracias
Adjunto ejemplos de pantalla:

Muestra la razón social de la union, no asi el código de la unión
Y cuando toma el foco el campo combobox muestra el registro anterior al que debería ser:
Es decir:
Código Union
19 Unión de Rugby de San Juan
18 Unión de Rugby de San Luis
--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com
---
Has recibido este mensaje porque estás suscrito al grupo "Mundo Visual FoxPro" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a mundovisualfox...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
Vuelve a consultar el origen de la fila al que está asociado el control ListBox o ComboBox.
Control.Requery
Utilice el método Requery para asegurarse de que un control contiene los datos actualizados. El método Requery requiere la propiedad RowSource y actualiza la lista con los nuevos valores.
*Init del ComboBox
SELECT dbfUNiones
GO top
WITH this
.RowSourceType= 6
.RowSource='dbfUNiones.nombre,id_union'
.BoundColumn=2
.ControlSource='dbfUniones.id_union'
.Style= 2
.FontSize=8
.ColumnCount=2
.ColumnWidths='120,80'
.ColumnLines=.f.
.Requery
.Refresh
ENDWITH
Puse como ControlSource el Id_union. Fijate que como vos lo pusiste, tendría que ser nombre. Pero supuestamente el Id debe ser más específico. Un problema puede surgir si el Id es numérico.
Notas
1) Entiendo que tal vez estás buscando un problema, pero este código no tiene sentido:
_RecnoUnion=RECNO('DBFUniones')
SELECT DBFUniones
GO _RecnoUnion
2) En el Init del ComboBox, cuando estás poniendo Style=2, no te compliques con definiciones como estas:
This.Value=''
This.InputMask=REPLICATE('#',10)
This.Format='KL'
This.MaxLength=10
No son necesarias. En todo caso, cuando todo funcione puedes estudiar si eso aporta algo.
3) Asignando valores
* Thisform.txtid_union.DisplayValue=DBFUniones.id_union && suprime esto
Thisform.txtid_union.Value=DBFUniones.id_union