Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Lukas
Результаты тестирования функций, реализованных через DlookUp и DAO.Recordset:


Public Function funIdTypeStone(IdStone As Long) As Long
On Error GoTo Err_function
    Dim Criteria As String
    Dim varValue As Variant
    
    Criteria = "IdStone=" & IdStone
    varValue = DLookup("IdTypeStone", "tblStone", Criteria)
    If IsNull(varValue) Then
        MsgBox "Не определен тип камня", vbExclamation, "Определение типа камня"
        funIdTypeStone = 0
    Else
        funIdTypeStone = varValue
    End If
    
Exit_function:
    Exit Function

Err_function:
    MsgBox Err.Description, vbExclamation, "Определение типа камня"
    Resume Exit_function
End Function

Public Function TestDlookUp()
Dim i As Integer
Dim L As Long
    Debug.Print Time()
    For i = 1 To 1000
        L = funIdTypeStone(1)
    Next i
    Debug.Print Time()
'    12:47:49
'    12:47:50
End Function

Public Function funIdTypeStoneDao(IdStone As Long) As Long
    Dim rst As DAO.Recordset
    Dim dbs As DAO.Database
    Dim strSQL As String
    
    strSQL = "Select IDTypeStone From tblStone WHERE IDStone=" & IdStone & ";"
    Set dbs = CurrentDb
    Set rst = dbs.OpenRecordset(strSQL, dbReadOnly)
    If Not rst.EOF Then funIdTypeStoneDao = rst(0)
    rst.Close
    Set rst = Nothing
    dbs.Close
    Set dbs = Nothing
End Function

Public Function TestDao()
Dim i As Integer
Dim L As Long
    Debug.Print Time()
    For i = 1 To 1000
        L = funIdTypeStoneDao(1)
    Next i
    Debug.Print Time()
'12:57:34
'12:57:41
End Function



У меня в расчете цены изделия используются функции с DlookUp (около 20), все хотел переписать через DAO. Провел тестирование. Желание переписать отпало.


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.