Hola Juan:
El evento RowColChange se ejecuta cada vez que cambia la columna o fila donde este el cursor, ya sea por cambiar de celda o por que lo hagas con el RecordSelectors.
Si lo que quieres es que solo lo haga cuando pulse el selector de la Izda tienes que escribir un condicional (If) que evalue si la fila esta seleccionada, ya que si lo haces mediante el cambio de celda la fila no se selecciona.
Private Sub DBGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
End Sub
DBGrid1.SelBookmarks.Count devuelve el numero de filas que tienes en la coleccion de filas seleccionadas.
Puedes usar esta colección para posicionar el puntero de la base de datos en la fila seleccionada.
If DBGrid1.SelBookmarks.Count > 0 Then
Data1.Recordset.Bookmark = DBGrid1.SelBookmarks(0)
Else
'Esto evitaria que el usuario seleccionara otra fila mientras pulsa Shift o Ctrl.
MsgBox "Solo puedes seleccionar una fila para mostrar"
End If
Private Sub DBGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
If DBGrid1.SelBookmarks.Count > 0 Then
Data1.Recordset.Bookmark = DBGrid1.SelBookmarks(0)
'Aqui situas el código para los TextBox si no están enlazados al data.
Else
'Esto evitaria que el usuario seleccionara otra fila mientras pulsa Shift o Ctrl.
MsgBox "Solo puedes seleccionar una fila para mostrar"
End If
End Sub
Observa que al igual que los indices de controles el valor del último indice es Count - 1
Saludos.