R
R
Rinat Haisman2017-10-05 17:46:03
Database
Rinat Haisman, 2017-10-05 17:46:03

How to display the execution time of a database query in ms access?

I have a form whose buttons and fields are assigned to perform procedures. (filling the database with random numbers)
Updated the code (from 10/07/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

How can you calculate not the execution time of this code, but the time from the beginning to the end of building the required number of records in the database?
As a result, I need to compare the execution time of queries to the database with a different number of records.
UPD: Updated
code
txtTotalSec - field name
button - button name
Screenshots:
Form in design view
59d887d328da9313494572.png
txtTotalSec in field name
59d888213052d921773604.png
Data tab
59d888d772605803900840.png

Archive with the work file:
Archive
https://yadi.sk/d/uW4O47p03NYSNo

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
Artyom Karetnikov, 2017-10-06
@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()
Вот так будет полное время выполнения процедуры генерации.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question