Хотя верно, что вы не можете сказать, сколько времени займет запрос, возможно дать вашему пользователю представление о времени, которое прошло / осталось. Вы используете индикатор выполнения из VB IDE. Затем вы устанавливаете его свойство 'max' на количество записей вашего запроса. По мере итерации по записям увеличивайте свойство значения индикатора выполнения. Вот пример; («Rs» - набор записей ADODB)
ProgressBar1.Max = Rs.RecordCount - 1
For P = 0 To .RecordCount - 1
ProgressBar1.Value = P
'some process here
Rs.MoveNext
Next P