Rinat_Haisman
@Rinat_Haisman
SEO-специалист, телеграм-канал @seospecialist

Как вывести время выполнения запроса к БД в ms access?

У меня есть форма, кнопки и поля которой назначены на выполнение процедур. (наполнение БД случайными числами)
Обновил код (от 07.10.17):

Option Compare Database

Sub randomDigits(tableName, fldOt, fldDo, n)
    Start_time = Time()
    Dim i
    Randomize
    With CurrentDb.OpenRecordset("select * from [" & tableName & "]")
        For i = 1 To n
            .AddNew<img src="https://habrastorage.org/webt/59/d8/87/59d887b59a714490382428.png" alt="image"/>
            !number = Rnd(i) * (fldDo - fldOt) + fldOt
            .update
        Next
    End With
    End_time = Time()
End Sub

Sub button_Click()
    Dim mTime As Date
    Dim mTotalSec As Long
    n = Number19()
    fldOt = number_ot()
    fldDo = number_do()
    mTime = Now()
    Call randomDigits("table", number_ot, number_do, n)
    mTotalSec = DateDiff("s", mTime, Now)
    txtTotalSec = mTotalSec
End Sub


Как можно подсчитать не время выполнения этого кода, а именно время от начала до конца построения нужного кол-ва записей в базе данных?
В результате мне нужно сравнить время выполнения запросов к бд при разном кол-ве записей.

UPD:
Обновил код
txtTotalSec - имя поля
button - имя кнопки

Скриншоты:
Форма в режиме конструктора
59d887d328da9313494572.png
txtTotalSec в имени поля
59d888213052d921773604.png
Вкладка данные
59d888d772605803900840.png


Архив с файлом работы:
  • Вопрос задан
  • 608 просмотров
Пригласить эксперта
Ответы на вопрос 1
art_karetnikov
@art_karetnikov
Лучший мой проект: Мобильный банк Сбербанка РФ.
вот процедура, отвечающая за заполнение данных
Sub randomDigits(tableName, fldOt, fldDo, n)
Start_time = Time() ' время, когда она была запущена
Dim i ' тут бы я добавил as long
Randomize
With CurrentDb.OpenRecordset("select * from [" & tableName & "]") ' это собственно запрос. Выбираются данные из таблицы, причем все. Зачем так сделано - неясно.
For i = 1 To n ' а вот тут добавляются данные от 1 до n
.AddNew ' добавлено
!number = Rnd(i) * (fldDo - fldOt) + fldOt ' установлено значение числа.
.update ' сохранены записи
Next ' пошли на следующую строку
End With
End_time = Time() ' сохранили в переменную время конца выполнения
End Sub

' вот это вызов процедуры генерации. Имеет смысл добавить необязательно слово Call - так понятней, что это именно процедура
Call randomDigits ("table", number_ot, number_do, n)

debug.pring now()
Call randomDigits ("table", number_ot, number_do, n)
debug.pring now()
Вот так будет полное время выполнения процедуры генерации.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы