Bom, está lento pois a cada passagem do registro vc faz uma consulta. Tenta usar um join:
...
SQL = "SELECT ASSIST_TECNICA.* FROM ASSIST_TECNICA INNER JOIN ASSIST_RETORNOS ON ASSIST_TECNICA.ASSIST_NUMERO = ASSIST_RETORNOS.RET_ASSIST WHERE ASSIST_RETORNOS.Ret_Data_Atendimento = #" & var_15 & "# and ASSIST_RETORNOS.ret_data_enc is null AND ASSIST_TECNICA.Assist_Status = 2"
RsSql.Open Sql, Conexao, adOpenDynamic, adLockOptimistic 'buscando no banco.
Do Until RsSql.EOF
lst1.AddItem (RsSql_novo!Assist_Numero)
lst1.ItemData(lst1.NewIndex) = RsSql!Assist_Numero
RsSql.MoveNext
Loop
*****************************************************
Pelo q notei vc tb faz um controle dos registros q não estão nas 2 tabelas...
Então vc faz mais uma SQL:
Sql = "SELECT COUNT(ASSIST_TECNICA.*) FROM ASSIST_TECNICA WHERE Assist_Status = 2 AND ASSIST_TECNICA.ASSIST_NUMERO NOT IN(SELECT RET_ASSIST FROM ASSIST_RETORNOS WHERE Ret_Data_Atendimento = #" & var_15 & "# and ret_data_enc is null)"
RsSql_novo.Open Sql, Conexao, adOpenDynamic, adLockOptimistic 'buscando no banco.
IF NOT RSSQL_NOVO.EOF THEN
var_Eliminado = RSSQL_NOVO(0)
ENDIF
Sql = ""
Label1.Caption = RsSql.RecordCount - var_Eliminado
Label1.Visible = True
RsSql.Close
Rssql_novo.close
Set RsSql = Nothing
Set RsSql_Novo = Nothing
lst1.Visible = True
Em vez de várias SQL's vc só faz 2 o q economiza um processamento legal ae.
Qq coisa é só postar
at+