Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

ru:creating_user_reports:use_macros_in_reports:debug [2014/03/03 16:57]
barinova
ru:creating_user_reports:use_macros_in_reports:debug [2019/11/11 16:48] (текущий)
belkin [Отладка кода]
Строка 5: Строка 5:
 ===== Ошибки ===== ===== Ошибки =====
  
-Конечная цель при выполнении макроса -- это получение требуемого для нас отчета. Если отчет выполнился с другим результатом, чем ожидалось, -- это ошибка. Ошибки могут быть явными -- выдается какое-либо предупреждение, и неявными -- сообщений нет, но требуемый результат не достигнут. Возможные ситуации, которые сопровождают ошибки, приведены ниже.+Конечная цель при выполнении макроса - это получение требуемого для нас отчета. Если отчет выполнился с другим результатом, чем ожидалось, это ошибка. Ошибки могут быть явными - выдается какое-либо предупреждение, и неявными - сообщений нет, но требуемый результат не достигнут. Возможные ситуации, которые сопровождают ошибки, приведены ниже.
  
 ==== Отчет выполнился не верно, сообщение в Business Studio ==== ==== Отчет выполнился не верно, сообщение в Business Studio ====
  
-Отчет выполняется не с ожидаемым результатом. При этом в [[ru/manual/interface/main_form|окне системных сообщений Business Studio]] выдается текст вида: +Отчет выполняется не с ожидаемым результатом. При этом в окне системных сообщений Business Studio (см. [[ru/manual/manual]] -> [[ru/manual/interface/main_form]]выдается текст вида: 
-<code text+ 
-17.07.2013 9:07:18 Ошибка при выполнении макроса ПослеВыполненияОтчета: Адресат вызова создал исключение.+<code> 
 +17.07.2013 9:07:18 Ошибка при выполнении макроса ПослеВыполненияОтчета: Адресат вызова создал исключение. 
 Действия не будут выполнены. Действия не будут выполнены.
 </code> </code>
 +
 __Причина__: причины могут быть различные. Например, попытка обработки текстовых переменных арифметическими операциями. __Причина__: причины могут быть различные. Например, попытка обработки текстовых переменных арифметическими операциями.
  
-__Решение__: запустить отчет на выполнение в режиме отладки кода (см. [[#отладка_кода| Отладка кода]]).+__Решение__: запустить отчет на выполнение в режиме отладки кода (см. [[#отладка_кода|Отладка кода]]).
  
 ==== Отчет выполнился не верно, сообщений об ошибках нет ==== ==== Отчет выполнился не верно, сообщений об ошибках нет ====
Строка 24: Строка 26:
 __Причина:__ ошибка в логике кода, не указаны полностью все необходимые действия в коде, ошибочные вводные параметры. __Причина:__ ошибка в логике кода, не указаны полностью все необходимые действия в коде, ошибочные вводные параметры.
  
-__Решение:__ запустить отчет на выполнение в режиме отладки кода (см. [[#отладка_кода| Отладка кода]]).+__Решение:__ запустить отчет на выполнение в режиме отладки кода (см. [[#отладка_кода|Отладка кода]]).
  
 ==== Никаких сообщений, отчет выполняется "вечно" ==== ==== Никаких сообщений, отчет выполняется "вечно" ====
Строка 34: Строка 36:
 __Решение__: завершить выполнение MS Word (MS Excel) через Диспетчер задач Windows (Ctrl+Alt+Del). Возможно, для работы над отчетом потребуется перегрузить Windows. __Решение__: завершить выполнение MS Word (MS Excel) через Диспетчер задач Windows (Ctrl+Alt+Del). Возможно, для работы над отчетом потребуется перегрузить Windows.
  
-Далее отчет следует запускать на выполнение при отладке макроса (см. [[#отладка_кода| Отладка кода]]).+Далее отчет следует запускать на выполнение при отладке макроса (см. [[#отладка_кода|Отладка кода]]).
  
 ==== Другие сообщения об ошибках ==== ==== Другие сообщения об ошибках ====
Строка 46: Строка 48:
 Для того чтобы "залезть в отладку" и пошагово пройтись по выполнению макроса, необходимо первыми строками макроса написать следующие: Для того чтобы "залезть в отладку" и пошагово пройтись по выполнению макроса, необходимо первыми строками макроса написать следующие:
  
-<code vb> +<code>
 'Для отладки 'Для отладки
 Dim  DebugVar As Variant Dim  DebugVar As Variant
 Set DebugVar = 0 Set DebugVar = 0
-'конец "для отладки" +'конец "для отладки"
- +
 </code> </code>
  
Строка 70: Строка 70:
 [{{ ru:creating_user_reports:use_macros_in_reports:debug:debug2.png?nolink |Рисунок 2. Комментирование строк, приведших к ошибке [{{ ru:creating_user_reports:use_macros_in_reports:debug:debug2.png?nolink |Рисунок 2. Комментирование строк, приведших к ошибке
 }}] }}]
- 
  
 == Внимание! == == Внимание! ==
- 
 Окно среды VBA, вызванное в ходе перехода к отладке, является окном для отладки конкретного вызываемого отчета и не относится к шаблону отчета Business Studio. Изменения кода в таком окне не будут сохранены в макросе шаблона разрабатываемого отчета. Поэтому окно VBA для отладки лучше использовать для понимания выполнения текущего кода. Изменения же кода необходимо делать в основном окне VBA разрабатываемого отчета. Окно среды VBA, вызванное в ходе перехода к отладке, является окном для отладки конкретного вызываемого отчета и не относится к шаблону отчета Business Studio. Изменения кода в таком окне не будут сохранены в макросе шаблона разрабатываемого отчета. Поэтому окно VBA для отладки лучше использовать для понимания выполнения текущего кода. Изменения же кода необходимо делать в основном окне VBA разрабатываемого отчета.
-====== ======+==== ====
  
 ==== Видимость значений переменных ==== ==== Видимость значений переменных ====
Строка 94: Строка 92:
  
 Например, вывести какое-то сообщение можно так: Например, вывести какое-то сообщение можно так:
-<code vb>+<code>
 MsgBox "Текст сообщения" MsgBox "Текст сообщения"
 </code> </code>
  
 Значение переменной типа "Текст" можно вывести так: Значение переменной типа "Текст" можно вывести так:
-<code vb>+<code>
 txtVar = "Какое-то значение переменной" txtVar = "Какое-то значение переменной"
 MsgBox "Значение txtVar = " & txtVar MsgBox "Значение txtVar = " & txtVar
Строка 105: Строка 103:
  
 Значение числовой переменной можно вывести так: Значение числовой переменной можно вывести так:
-<code vb+<code> 
 digitalVar = 10 digitalVar = 10
 MsgBox "Значение digitalVar = " & Str(digitalVar) MsgBox "Значение digitalVar = " & Str(digitalVar)
 </code> </code>
  
-Для вывода сообщения в разных строках необходимо использовать вставить Chr(13)+Сообщение в разных строках можно вывести так
-<code vb+<code> 
 MsgBox "Текст первой строки" & Chr(13)  & _ MsgBox "Текст первой строки" & Chr(13)  & _
 "Текст второй строки" "Текст второй строки"
 </code> </code>
 +
 ===== Полезные ссылки ===== ===== Полезные ссылки =====
  
-  *[[http://office.microsoft.com/ru-ru/access-help/HP005186717.aspx|Отладка программ Visual Basic]]  
   *[[https://www.google.ru/search?q=отладка+кода+vba|google.com]]   *[[https://www.google.ru/search?q=отладка+кода+vba|google.com]]
 +
 +
 +
 +
 +
 +[<contextnavigator>]
 +
 +
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki