2015-08-27 1 views
0

У меня есть странный вопрос, код, который работал внезапно начал генерировать вопрос (я не имею ни малейшего понятия, как обойти его)VBA код перестал работать как задумано

Я List Box (List2) на Form1, это населенное по:

SELECT [queryFormyTradycyjne].[Nr Maszyny], [queryFormyTradycyjne].[UID], [queryFormyTradycyjne].[Nazwa], [queryFormyTradycyjne].[UAP], [queryFormyTradycyjne].[Linia], [queryFormyTradycyjne].[GAP], [queryFormyTradycyjne].[Status] FROM queryFormyTradycyjne ORDER BY [Nr Maszyny]; 

код queryFormyTradycyjne:

SELECT Lista.[Nr Maszyny], Lista.[Nazwa], Lista.[UAP], Lista.[Linia], Lista.[GAP], Lista.[Status], Lista.[UID] 
FROM Lista 
WHERE Lista.isValid=False And Lista.UID Like 'FF*'; 

и если я дважды щелкните на элементе из List2 он supose поставить значение в другой форме (AwariaZgloszenieNew), в текстовое поле на med txtNrMaszyny.

ЭТО работает просто отлично, так как 2 часа назад. Я на самом деле не касался вещи в коде или ни в одной из этих форм. Я проверил это на нескольких ПК с установленной версией Access. Тот же результат: Ошибка Метод 'Item' объекта 'формы' не удалось (-2146500594 (800f000e))

Мой VBA код двоеборье клик:

Public strSelectedItem As String 

Private Sub List2_DblClick(Cancel As Integer) 
Dim varItem As Variant 

With Me.List2 
    For Each varItem In .ItemsSelected 
    strSelectedItem = .ItemData(varItem) 
    Next 
End With 

DoCmd.OpenForm "AwariaZgloszenieNew" 

[Forms]![AwariaZgloszenieNew].[txtNrMaszyny] = strSelectedItem 

End Sub 

Любой человек с какой-либо идеи?

+0

Вы пытались компактно и ремонтировать БД? – MatthewD

+0

Я не совсем уверен, как это сделать. Изменить: если вы говорите об этой кнопке «Компактность и ремонт» - после нажатия на нее ничего не изменилось ... – Eska

+0

На вкладке «Инструменты базы данных» в меню ленты есть кнопка «Компактная и восстановительная база данных». Сначала создайте резервную копию своей базы данных. – MatthewD

ответ

1

Если «Компакт и ремонт» не помогают, есть еще две вещи, которые вы можете попробовать.

  • Decompile

How does one decompile and recompile a database application?
Выполните действия, описанные в Давид-W-Фентона ответ на письмо.

  • Создайте новую базу данных и импортируйте все объекты из старой.

Редактировать - только что видели ваш последний комментарий.
Если код VBA отсутствует, и нет доступной резервной копии, некоторые части могут быть потеряны. На будущее: во время разработки «Компактность и ремонт» и (в меньшей степени) Декомпиляция должна быть регулярной задачей.

Я не знаю, как Decompile работает с защищенным паролем кодом.
IMHO лучший вариант защиты кода в Access - это распространять .mde frontends вместо .mdb

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