Dlookup в сторону L oop Возможно ли это? - PullRequest
1 голос
/ 17 апреля 2020

Я "создаю" свой первый l oop, я скопировал код и пытаюсь заставить его работать. У меня работает l oop, но когда я пытаюсь выполнить Dlookup в середине l oop, он не работает.

Я уверен, что есть некоторые способы заставить этот код работать лучше, Просто пытаюсь получить динамические c данные для тела моего письма.

Вот соответствующая часть l oop.

strSQL = "SELECT * FROM emailbody Where EmailMainID = " & Me.EmailMainID

Set rs = CurrentDb.OpenRecordset(strSQL)

With rs
    If Not .BOF And Not .EOF Then

            .MoveLast
            .MoveFirst

            While (Not .EOF)
                LookupInfo = rs.Fields("beforetable") & "-" & rs.Fields("beforefield") 'Get Table and Field to lookup
                LookupLen = Len(LookupInfo) 'Find how many letters are in the string
                SubtractLen = InStr(1, [LookupInfo], "-") ' Find the number of letters to the left
                RightCut = LookupLen - SubtractLen ' Find how many are to the right
                Table = Left([LookupInfo], InStr(1, [LookupInfo], "-") - 1) ' Set the table value
                Field = Right([LookupInfo], RightCut) ' Set the Field Value
                InfoInsert = DLookup("Table", "Field", TeamDetailsID = 39)
                FreshData = rs.Fields("emailbodyid") & " " & rs.Fields("bodycontent") 

                LongEmail = EmailMe & FreshData
                EmailMe = LongEmail
                FreshData = ""
                LongEmail = ""

              .MoveNext
            Wend

        End If

        .Close

    End With

Ответы [ 2 ]

2 голосов
/ 17 апреля 2020

должно быть:

InfoInsert = DLookup("Table", "Field", "TeamDetailsID = 39")

или, если вы используете переменную

InfoInsert = DLookup("Table", "Field", "TeamDetailsID = " & idteam)
0 голосов
/ 19 апреля 2020

Итак, мой последний тест говорит мне, что моя трудность не в l oop. Я тестировал код таким образом (Да, у меня было поле и таблица, смешанные в приведенном выше примере)

Я получаю результат в Test2, но не Test1

Dim Table As String
Dim Field As String

Table = TeamDetails
Field = DepartDate

test2 = DLookup("DepartDate", "TeamDetails", "TeamDetailsID = 39")
MsgBox test2
test1 = DLookup("Field", "Table", "TeamDetailsID = 39")
MsgBox test1
...