2013-06-04 5 views
0

Я пытаюсь динамически создавать элементы управления в форме по мере необходимости, и поэтому я использовал метод CreateControl.Тип Несоответствие при использовании CreateControl в Access VBA

DateControls(i) = CreateControl(Reports!Comments_R, acTextBox, acDetail, , , TopValue, 0, 5400, 1440) 

В следующей строке кода выше, когда я пытаюсь скомпилировать проект «CreateControl» подсвечивается и всплывающее окно показывает, что существует несоответствие типов. DateControl объявляется как элемент управления. Я также попробовал объявить его как вариант, и я все равно получаю ту же ошибку. В другой раз я попробовал это без использования массива и снова, по-прежнему той же ошибки. Любые идеи относительно того, что может быть неправильным?

спасибо.

+0

Вы упомянули 'DateControl', но ваш код говорит' DateControls'. У вас есть «Option Explicit» в верхней части вашего модуля VBA? Если нет, вы должны поместить его туда. –

+0

Да, у меня есть Option Explicit, и переменная правильно написана в моем коде. – jaromey

ответ

0

Несоответствие типа относится к первому аргументу CreateControl. Это должна быть строка. Это приведет к пропуску ошибки несоответствия типа:

CreateControl(Reports!Comments_R.Name, ... 

Однако у вас есть еще две проблемы.

  • Поскольку контроль является объектом, вы должны использовать Set в своем заявлении назначения.

  • Похоже, вы хотите добавить элемент управления в отчет . Если это так, используйте CreateReportControl.

Смежные вопросы