Hola korg1988,
Supongo que el recordset (Rs) lo tienes declarado a nivel de módulo, al igual que la conexión. Si es así, no lo cierres en este procedimiento, sino al cerrar el formulario.
Por otra parte, al control DataGrid no es necesario indicarle los datos de las columnas a mostrar, lo hace directamente, así como tampoco es necesario refrescarlo.
El código debe funcionar correctamente así:
Código:
Private Sub Listar_Click()
'Establezco el cursor
Rs.CursorLocation = adUseClient
SQL = "SELECT legajos.Nombre, anticipos.* " _
& "FROM anticipos, legajos " _
& "WHERE anticipos.NumLegajo = legajos.legajo " _
& "AND liquidacion >= '" & liquidacion_1_2.Text & "/" & liquidacion_1_1.Text & "' " _
& "AND liquidacion <= '" & liquidacion_2_2.Text & "/" & liquidacion_2_1.Text & "' " _
& "ORDER BY Liquidacion, NumLegajo, Fecha ASC"
Rs.Open SQL, Con, adOpenDynamic, adLockOptimistic
Set Grilla.DataSource = Rs
End Sub