Я относительно новичок в Access, и любой SQL и VBA, которые я изучил, является самоучкой, поэтому я был бы очень признателен за ответы, которые не слишком перегружены техническими терминами... тем не менее, у меня проблема с разрешением полям со списком оставаться пустым в форме, если пользователь не хочет вводить данные. Кроме того, я использую Access 2016.
Первоначально проблема, с которой я столкнулся, заключалась в том, что если поле со списком было полностью пропущено и оставлено пустым, или если пользователь выбирает поле со списком, а затем пытается двигаться дальше, не делая выбора из списка, он получает сообщение об ошибке «Вы попытались назначить нулевой значение переменной, которая не является типом данных Variant», и не смогли перейти ни к каким другим полям в форме или сохранить введенную запись.
Я нашел эту статью, в которой подробно описан возможный решение, но я не могу заставить его работать. Я сделал несвязанный список со списком, установил для источника строки значение:
SELECT EmailID, PersonalEmail FROM EmailT UNION SELECT "<N/A>","<N/A>" FROM EmailT
ORDER BY PersonalEmail;
где PersonalEmail — это поле короткого текста, а EmailID — это автонумерация. Я также выполнил шаги, описанные в статье, для форматирования поля со списком (ширина столбца и т. д.) и установил для него значение Limit to List = Yes.
Вот мой точный код:
Private Sub Combo62_AfterUpdate()
If Combo62 = "<N/A>" Then
EmailID = Null
Else
EmailID = Combo62
End If
End Sub
Private Sub Form_Current()
If IsNull(EmailID) Then
Combo62 = "<N/A>"
Else
Combo62 = EmailID
End If
End Sub
‹ N/A> теперь отображается в моем списке, но если он выбран, я получаю сообщение об ошибке: «Введенное вами значение недействительно для этого поля. Например, вы могли ввести текст в числовое поле или число больше, чем разрешено параметром FieldSize».
Отладчик Access выделяет строку:
EmailID = Null
но я не уверен, какие шаги я должен предпринять сейчас, чтобы попытаться исправить это.
Я полностью открыт для других методов, позволяющих оставить поле со списком пустым, если кто-то знает лучший способ сделать это. Насколько я знаю, мне не хватает чего-то действительно очевидного! Заранее спасибо за любую информацию!
РЕДАКТИРОВАТЬ: Спасибо за вашу помощь, ребята, я так и не понял, в чем именно проблема, но я получил совет от другого форума, чтобы переосмыслить дизайн моей базы данных, так что это оказалось нулевой проблемой - теперь все совершенно по-другому!