Правило валидации в VBA для определения длины текста

У меня есть форма для записи телефонных номеров, которые бывают двух видов:

  • Внутренний имеет 4 символа
  • Внешний имеет 4 или 7 или 8 символов

Я хочу внести изменения в ValidationRule в соответствии с Combobox, который определяет тип телефонных номеров.

Я пытался использовать ValidationRule в свойствах формы, но он не работает с IIf формула или в зависимости от значения другого текстового поля или комбинированного списка.

Итак, я сделал этот кусок кода, но он не работает:

If me.combo.value = "internal" then 
    Me.field.validationrule = "Len([field]) = 4"
ElseIf Me.combo.value = "external" Then 
    Me.field.validationrule = "Len([field]) = 4 or Len([field]) = 7 or Len([field]) = 8"
End If

Заранее спасибо.

2 ответа

Решение

Вам не нужно менять правило проверки. Попробуйте что-то вроде этого:

([combo]="internal" And Len([field])=4) Or ([combo]="external" And (Len([field])=4 Or Len([field])=7 Len([field])=8))

Код, по которому я спрашиваю

If me.combo.value = "enteral"  then Me.field.validationrule ="Is Null OR Like """"" Elseif me.combo.value = "extetnal" then.   Me.field.validationRule="Is Null OR Like """" OR Like """"  OR Like """""
End if.   

Источник https://www.officena.net/ib/topic/87200-التحكم-بخاصية-قاعدة-التحقق-من-الصحة-validationrule-لمربع-نص-برمجياً-vba/

Другие вопросы по тегам