Я действительно новичок в VBA. У меня есть довольно сложная функция для Access VBA, которая просматривает таблицу, выполняет кучу вычислений и условных выражений и возвращает значение. Когда я запускаю функцию и использую «Debug.Print» для получения значений функции, она выплевывает именно то, что должна в «Немедленном окне». Однако, когда я пытаюсь вызвать функцию для запроса доступа к той же таблице, запрос возвращает только последнее значение в цикле.
Я построил гораздо более простую функцию зацикливания, чтобы попытаться выяснить, что я делал неправильно (см. Ниже), и происходит то же самое - исправьте значения в непосредственном окне, только последнее значение, возвращенное в выражении в запросе. Может кто-нибудь сказать мне, какую очевидную ошибку я совершаю? Если я могу исправить это здесь, я должен быть в состоянии исправить это в реальном проекте. Очень ценю любую помощь!
Function TestID()
Dim d As Database
Dim r As Recordset
Dim id As Field
Set d = CurrentDb()
Set r = d.OpenRecordset (“tblAllocation”)
r.MoveFirst
r.MoveLast
r.MoveFirst
Do Until r.EOF
Set id = r.Fields(“IDAllocation”)
TestID = id
Debug.Print TestID ‘This lists all the correct values in the Immediate Window'
r.MoveNext
If r.EOF Then Exit Do
Loop
r.Close
Set r = Nothing
End Function