Hola amigos depues de tanto reintentar la forma que funcione por fin di con la solucion.
La solucion estaba en que despues de la linea:
Set dg.DataSource=RstData
Yo le daba formato y ocultaba algunas columnas, claro si lo haces no permite hacer este truco, pero aqui les dejo mi solucion, espero que sea de ayuda para alguien:
Private sub txtData_Change()
Set RstLista = gCnn.Execute("Select IDProducto,Laboratorio,Nombre,U_Medida,PCom,PVen,PFra,Stock_F as Stock From
VProductos Where Nombre like '" & Trim(txtPro.Text) & "%' And Activo='SI'")
If RstLista.RecordCount > 0 Then
dg.Visible = True
Set dg.DataSource = RstLista
dg.Columns(0).Width = 900: dg.Columns(0).Caption = "ID"
dg.Columns(1).Width = 4000
dg.Columns(2).Width = 8100
dg.Columns(3).Width = 1800
dg.Columns(4).Width = 1000: dg.Columns(4).Alignment = dbgCenter
dg.Columns(4).NumberFormat = "#,##0.00"
dg.Columns(5).Width = 1000: dg.Columns(5).Alignment = dbgCenter
dg.Columns(5).NumberFormat = "#,##0.00"
dg.Columns(6).Width = 1000: dg.Columns(6).Alignment = dbgCenter
dg.Columns(6).NumberFormat = "#,##0.00"
dg.Columns(7).Width = 1000: dg.Columns(7).Alignment = dbgCenter
dg.SetFocus
Else
Set dg.DataSource = Nothing
dg.Visible = False
End If
End Sub
Private Sub txtDato_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyDown Then
If dg.Visible Then
RstLista.MoveNext
If RstLista.EOF Then
RstLista.MoveLast
End If
dg.SetFocus
KeyCode = 0
End If
ElseIf KeyCode = vbKeyUp Then
If dg.Visible Then
RstLista.MovePrevious
If RstLista.BOF Then
RstLista.MoveFirst
End If
dg.SetFocus
KeyCode = 0
End If
End If
End Sub
Private Sub dg_GotFocus()
dg.Refresh
If txtDato.Enabled Then
txtDato.SetFocus
End If
End Sub
Me falta para usar las teclas Av. Pag y Av.RePag
Saludos
9tnix