#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.