La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1432 - COMO ABRIR O SIMULAR UN DBCOMBO DESDE UNA COLUMNA DE DBGRID
Autor:  Jorge Danilo Rueda Sanabria
Estoy trabajando con VB50 y quisiera aprender a desplegar una lista de nombres de una tabla desde una columna de un dbgrid para posteriormente almacenar el campo clave de la lista en otra tabla asociada con el dbgrid. Por favor si saben como se realiza...

  Respuesta:  Ambrosio Cardoso Jiménez
En este momento no tengo el archivo a la mano, puro puedes visitar la página de un experto en visual basic
Esta es la dirección

http://www.eidos.es/vExpert

Encontrarás el articulo personalizando el DbGrid

  Respuesta:  Jorge Danilo Rueda Sanabria
Bueno estaba buscando esta respuesta y yo mismo la respondo gracias a mi amigo Adolfo Mujica:

Incluimos el siguiente codigo en el formulario, con un dbgrid y un dblist enlazados:
Private Sub DBGrid1_ButtonClick(ByVal ColIndex As Integer)
Dim C As Column
´ La columna 1 se le estableció la propiedad button = true
If ColIndex = 1 Then
´ La lista esta invisible?
If DBList1.Visible = False Then
Set C = DBGrid1.Columns(ColIndex)
With DBList1
´Muestra la lista.
.Left = DBGrid1.Left + C.Left
.Top = DBGrid1.Top + DBGrid1.RowTop(DBGrid1.Row) + DBGrid1.RowHeight
.Width = C.Width + 15
´.ListIndex = 0
.Visible = True
.ZOrder 0
.SetFocus
End With
Else
DBList1.Visible = False
End If
End If
End Sub
Private Sub DBGrid1_Scroll(Cancel As Integer)
´Oculta la lista al presionar el scroll
DBList1.Visible = False
End Sub
Private Sub DBLIST1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyReturn
´Asigna el texto seleccionado.
DBGrid1.Columns(1).Text = DBList1.Text
DBList1.Visible = False
Case vbKeyEscape
DBList1.Visible = False
End Select
End Sub
Private Sub DBLIST1_LostFocus()
´Oculta la lista al perder el foco
DBList1.Visible = False
End Sub
Private Sub DBLIST1_DblClick()
´La misma opcion que cuando presiona ENTER
DBLIST1_KeyPress vbKeyReturn
End Sub
Private Sub DBList1_Click()
´La misma opcion que cuando presiona ENTER
DBLIST1_KeyPress vbKeyReturn
End Sub