Попытка получить значение в vba из выбора поля со списком в форме

#vba #ms-access #ms-access-2013

#vba #ms-доступ #ms-access-2013

Вопрос:

У меня есть форма, в которой есть поле со списком, содержащее все номера значков (пример значка # : 12345), но когда я пытаюсь присвоить его переменной в vba, она выдает мне следующую ошибку: переполнение во время выполнения «6»

Но когда я перехожу к отладке, он показывает, что Combo529.Value = 12345, но он не присваивает его моей переменной и выдает ошибку

 Private Sub reportRecord_Click() Dim badgeNum As Integer badgeNum = Combo529.Value  reportRecord.Value = getReport(badgeNum) End Sub  

а вот код функции GetReport() :

 Function getReport(badge As Integer)  Dim yearNow As Integer yearNow = year(Date)  Dim report As String  report = badge amp; "-" amp; yearNow amp; "-"  Dim i As Integer  For i = 1 To 3 If Not IsNull(DLookup("Badge_ID", "Employee_Self_Assessment", "Report_ID = ' " amp; report amp; "0" amp; i amp; "'")) Then   getReport = 0    Else    Next i    getReport = 1   End If    End Function  

Комментарии:

1. Попробуйте объявить переменную как можно дольше.

2. Отлично, что сработало, спасибо.

Ответ №1:

Предположим, что Badge_ID-это поле с автономером или длинным целым числом, и, по-видимому, значение слишком велико для целочисленной переменной. Объявите переменную как можно дольше. Или тип варианта должен работать — переменные, явно не объявленные, по умолчанию будут иметь значение Variant.