Miguel Altamirano Morales Ответов: 1

Почему несколько точек останова не работают в access 2010 ?


Я работаю с приложением Access 2010, и я получаю действительно странное поведение с окружающей средой (ну, по крайней мере для меня, я никогда не работал с ней раньше). Но на этот раз я спрошу только следующее, потому что просто не могу найти причину:

Я установил несколько точек останова в некоторых строках кода vba, чтобы следить за ходом выполнения. Немногие из них работают идеально, выполнение останавливается, и я могу следовать шаг за шагом по подсекуентным линиям; но есть и другие, которые просто не останавливаются, даже если они хорошо стабилизированы.

Те, которые я установил в модулях, выполняемых макросом autoexec, работают нормально, а не другие.

Единственное, что я вижу, это то, что настроенная лента загружается, когда форма появляется после выполнения макроса autoexec.

Кто-нибудь может мне помочь ?

Что я уже пробовал:

Я долго искал в гугле, но так ничего и не нашел. Я вот-вот сойду с ума.

Miguel Altamirano Morales

Я вижу, что VBA Access не сохраняет установленные точки останова при сохранении базы данных, как это обычно делал Visual Basic 6.0 (или NET).

Интересно, не продолжается ли выполнение всей системы, когда макрос autoexec завершает работу (вручную). Может быть, именно по этой причине моя точка останова не работает. Модуль, где он находится,не находится в диапазоне макроса autoexec, поэтому поток никогда не достигает этой точки. (Я загружаю исходную базу данных, удерживая клавишу shift, это единственный способ, который я видел, который позволяет мне устанавливать точки останова и анализировать код)

Я добавил команду "стоп" в код, пытаясь имитировать точку останова, но все равно не работает. Я посылаю вам копию кода. Предыдущий Msgbox после остановки работает хорошо, так что я не знаю, почему остановка терпит неудачу.

Когда вы загружаете базу данных, удерживая клавишу shift, есть ли способ запустить всю систему ? (Я имею в виду без необходимости выполнять макрос autoexec вручную)

Суб OnActionTglButton(контроля методом iribboncontrol, давили, как логическое)

'Callbackname в XML-файле" onAction"

'Обратный вызов для события нажатия кнопки переключения

MsgBox "Quitar éste mensaje", vbCritical, " basRibbonCallbacks"

Стоп

Выберите случай-контроль.Идентификатор

Дело "tgbclientes"
В разделе: tabclientes
'В группе: grpclientes
parms(6) = min_pedido()
Если параметр (125) = 1, то
DoCmd. RunSQL ("UPDATE dbo_restricciones SET formulario='f_clientes' " & _
"Где programa_id=9")
Еще
DoCmd. RunSQL ("UPDATE dbo_restricciones SET formulario='f_clientes_america' " & _
"Где programa_id=9")
Конец, Если

......... продолжает

1 Ответов

Рейтинг:
0

Patrice T

Вы не показываете никакого кода так ...
Прочитать эту страницу: Отладка VBA[^]

Совет: убедитесь, что части кода с точкой останова, которые не останавливаются, действительно выполняются.
Я бы поставил больше точек останова, а также некоторые контрольные точки, сохранив определенные значения, которые говорят, какие последовательности кода были выполнены.

[Обновление]
Не забудьте прокомментировать обработчики ошибок.
Каждый раз, когда у меня возникала эта проблема, код по какой-то причине не выполнялся: и обработчик ошибок, неудачный тест ...


Miguel Altamirano Morales

Большое спасибо, мой друг, я сделаю то, что вы мне предлагаете, и, если вы согласитесь, я дам вам знать, что произошло.

Patrice T

без проблем.