2016-12-15 3 views
2

У меня возникает эта ошибка компиляции в приложении Microsoft Access. Недавно я начал работать над доступом к MS. Поэтому я новичок в коде VBA. У меня есть настольное приложение (Access 2003), в котором список компаний нужно сортировать, как только пользователь нажимает на заголовок столбца. Он работал, но как только я нажимаю «Скомпилировать», он бросает мне эту ошибку. Если я прокомментирую следующий код, моя программа компилируется, но сортировка не работает. Пожалуйста помоги.Ошибка Acess Compile - определенный пользователем тип не определен vba access

Dim ListViews As New clsListViews 
Private Sub lstVendorList_ColumnClick(ByVal ColumnHeader As Object) 
    ListViews.SortColumns lstVendorList, ColumnHeader 
End Sub 

Когда я исследовал его в Интернете. Многие говорили о ссылках. Под моей ссылки, я проверил

Microsoft DAO 3.6 Object Library 
Visual Basic For Applications 
Microsoft Access 9.0 object library. 
+0

Откуда: lstVendorList? Кроме того, ошибка компиляции должна выделять идентификатор. Который из? –

+0

@ Mat'sMug: lstVendorList - это список компаний/поставщиков, которые мне нужны для сортировки. Компилятор выделяет первую строку. (т. е. Dim ListViews как новые clsListViews). Опять же, это не мой код, и я пытался работать над чем-то другим, но я получил ошибку компиляции из-за listview. – toofaced

+0

В вашем проекте VBA есть модуль класса clsListViews? –

ответ

2
Dim ListViews As New clsListViews 

Эта команда объявляет объектную переменную уровня модуля с именем ListViews, типа clsListViews.

VBA выглядит везде, где может быть класс с именем clsListViews, что он может создать экземпляр и назначить ссылку ListViews, а когда он не сможет найти его, он даст вам ошибку компиляции, которую вы видите.

Удостоверьтесь, что вы только New объектов, которые существуют. Если он не указан в IntelliSense/автозаполнении, когда вы вводите пробел после New, это, вероятно, не законный тип.

+1

Итак, мне нужно сгладить как ListViews, так и lstVendorList? Когда я 'Dim ListViews как ListBox'. Он дал мне «Метод или элемент данных не найден» и выделен в «SortColumns». Мне жаль, если я задаю второстепенную вещь, но я только начал изучать VBA. – toofaced

+0

Я не могу догадаться, что вы пытаетесь сделать. Если вы скопировали код где-то в Интернете, вам нужно понять его, прежде чем использовать его. Эта новая ошибка означает, что у 'ListBox' нет элемента/метода' SortColumns', поэтому вы не можете вызвать метод, который не существует. –

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