Что я получу от recordset.Fields (0)? - PullRequest
0 голосов
/ 06 февраля 2020

Я новичок в VBA и должен понимать кодекс, который написал кто-то другой. Вот что она установила для своих переменных:

Sub LTMovementSum1(y As Long, strStoreArea As String)
    Dim recTmp As DAO.Recordset
    Dim lngTotalLTagg As Long
    lngTotalLTagg = 0

If Control.intLBoSNR = 1 Then
        strQuery = "SELECT count(TIS_LAGERSPIEGEL.LT) FROM TIS_AGG_SNR " & _
                    "LEFT JOIN TIS_LAGERSPIEGEL ON TIS_AGG_SNR.SNR_KARTE=TIS_LAGERSPIEGEL.SNR_KARTE " & _
                    "WHERE TIS_AGG_SNR.LB= """ & strStoreArea & """;"
        Set recTmp = db.OpenRecordset(strQuery)

        If Not IsNull(recTmp.Fields(0)) Then lngTotalLTagg = recTmp.Fields(0)
    ElseIf Control.intLBoSNR = 2 Then
        strQuery = "SELECT count(TIS_LAGERSPIEGEL.LT) FROM SELECTED_SNR " & _
                   "LEFT JOIN TIS_LAGERSPIEGEL ON SELECTED_SNR.SNR_SPEICHER = TIS_LAGERSPIEGEL.SNR_SPEICHER;"
        Set recTmp = db.OpenRecordset(strQuery)

        If Not IsNull(recTmp.Fields(0)) Then lngTotalLTagg = recTmp.Fields(0)
    End If

Я не совсем понимаю, что я получаю от recTmp = db.OpenRecordset(strQuery) и что от recTmp.Fields(0)

Я действительно надеюсь, что кто-то может мне помочь , спасибо!

PS: БД - моя база данных из Access

1 Ответ

1 голос
/ 06 февраля 2020

С таким небольшим воображением или фантазией вы встретите много ударов.

Однако, этот открывает (a) набор записей на основе запроса:

Set recTmp = db.OpenRecordset(strQuery)

и это читает значение первого поля текущей строки:

lngTotalLTagg = recTmp.Fields(0)
...