Я ценил ответы knox и david. Мой ответ будет где-нибудь между их: просто сделайте формы, которые не должны быть отлажены !
я думаю, что формы должны исключительно использоваться в качестве, что они в основном, имея в виду графический интерфейс [только 1 112] , означая здесь, что они не должны быть отлажены! Задание отладки тогда ограничено Вашими модулями VBA и объектами, который намного легче обработать.
существует, конечно, естественное стремление для добавления кода VBA к формам и/или средствам управления, особенно когда Доступ предлагает Вам их большие "после Обновления" и "на изменении" события, но я определенно советую Вам не помещать любую форму или управлять определенным кодом в модуле формы. Это делает дальнейшее обслуживание и обновление очень costy, где Ваш код разделяется между модулями VBA и модулями форм/средств управления.
Это не означает, что Вы не можете больше использовать этот AfterUpdate
событие! Просто поместите стандартный код в конечном счете, как это:
Private Sub myControl_AfterUpdate()
CTLAfterUpdate myControl
On Error Resume Next
Eval ("CTLAfterUpdate_MyForm()")
On Error GoTo 0
End sub
, Где:
CTLAfterUpdate
стандартная процедура, работает каждый раз, когда управление обновляется в форме
CTLAfterUpdateMyForm
, конкретная процедура, работает каждый раз, когда управление обновляется на MyForm
, у меня есть тогда 2 модуля. Первый -
utilityFormEvents
, второй -
MyAppFormEvents
Выбор такого универсального решения означает много. Это означает достижение высокого уровня нормализации кода (значение безболезненного обслуживания кода). И то, когда Вы говорите, что у Вас нет определенного для формы кода, это также означает, что модули формы полностью стандартизированы, и их производство может быть , автоматизировало : просто скажите, какими событиями Вы хотите управлять на уровне формы/управления и определить Вашу универсальную терминологию / терминологию конкретных процедур.
Запись Ваш код автоматизации, раз и навсегда.
требуется несколько дней работы, но это дает захватывающие результаты. Я использовал это решение в течение прошлых 2 лет, и это - ясно правильное: мои формы полностью и автоматически созданы с нуля с "Таблицей Форм", связаны с "Таблицей Средств управления".
я могу тогда провести свое время, работая над конкретными процедурами формы, если таковые имеются.
нормализация Кода, даже с Доступом MS, является долгим процессом. Но это действительно стоит боли!
Вы можете попробовать Diamondback Ruby . Он выполняет статическую проверку типов кода Ruby и, таким образом, обвиняет вас в использовании неопределенной переменной.
Хотя DRuby является продолжающимся исследовательским проектом, он уже достаточно хорошо работает для небольших автономных сценариев Ruby. В настоящее время он не может анализировать большую часть стандартной библиотеки Ruby «из коробки». В настоящее время они работают над типизацией Ruby on Rails (см. Их последние статьи ).
ruby -c myfile.rb
проверит правильность синтаксиса Ruby. [Plug] Если ваш проект находится в общедоступном репозитории Github, Caliper может запускать последние три инструмента и другие инструменты в вашем коде каждый раз при фиксации. (Отказ от ответственности: я работаю над суппортом)
Test :: Unit
Хорошо, я знаю, что вы уже знаете это и что в некотором смысле это бесполезный ответ, но вы поднимаете отрицательные последствия утиного набора текста, которые вроде бы есть (на на этот раз) невозможно просто написать больше тестов, чем может потребоваться что-то вроде Java.
Итак, для записи см. Test :: Unit
в стандартной библиотеке Ruby или в одной из других сред тестирования.
Наличие модульных тестов, которые вы можете запускать и повторно запускать, - лучший способ выявлять ошибки, и вам действительно нужно их больше (тесты, а не ошибки :-) в динамических языках, таких как Ruby ...
avdi@lazarus:~$ irb
>> a = 20
=> 20
>> b = 30
=> 30
>> puts c
NameError: undefined local variable or method `c' for main:Object
from (irb):3
>>
Итак, инструмент называется "IRB". Получу ли я награду?
Я только наполовину шучу. Я написал этот второй ответ, чтобы, надеюсь, донести мысль о том, что в Ruby, если вы хотите знать, что что-то определено или нет, вы должны запустить код .
Ну, здесь нет предложения order_by, поэтому мне интересно, что вы имеете в виду под словом «последний». Предполагая, что вы имели в виду «последний добавленный»,
Valor.objects.filter(robot=r).order_by('-id')[0]
может сработать за вас.
любому редактору, который пытается идентифицировать несуществующие переменные / методы, потребуется загружать большую часть всей среды и постоянно тестировать несколько программных путей, чтобы получить точные результаты «достоверности». Это намного сложнее, чем в Java, где почти все программирование статично (по крайней мере, так было, когда я сбросил эту шляпу).Эта способность легко генерировать методы на лету - одна из причин, по которой сообщество так высоко ценит тестирование. Я действительно рекомендую вам попробовать себя и в тестировании.