Я вижу НУЛЕВЫЕ причины написать весь этот код. Почему бы не позволить форме обрабатывать все это? Помните, что каждая форма на самом деле является экземпляром класса. Вы даже можете запустить несколько копий одной формы, каждая со своим собственным кодом, собственными данными, и каждый экземпляр той же формы может работать на 100% независимо от других рабочих копий той же формы.
Если вы пытаетесь взглянуть на эту проблему и хотите получить объект класса для формы, просто используйте объект формы - это то, что он делает для вас!
Я вижу нулевую выгоду от писать весь этот код. Хотя. net имеет менеджер набора данных и систему (и теперь очень похожую структуру сущностей, это НАМНОГО сделано, поскольку. net не имеет привязанных к данным форм.
В Access каждая форма на самом деле объект класса. И это включает любой subli c sub или функцию для этой формы (так что функции становятся методами этой формы, а publi c vars становятся свойствами этой формы). В дополнение к связанной форме, имеющей события loadload эти события работают как действия против любого редактирования данных. Таким образом, в отличие от большинства систем, у вас есть событие «при изменении», до события обновления, после события обновления. Таким образом, просто приняв связанную форму, вы получите: Объект класса automati c создан для вас. У вас может быть несколько экземпляров этого класса и, следовательно, несколько экземпляров одной и той же формы, открытых одновременно. Вы получаете все те события данных, которые можно использовать для проверки ввода данных (или пользователь не может сохранить запись до тех пор, пока ваш критерий не будет достигнут. У вас есть полное использование всех столбцов данных, накануне n если элементы управления НЕ размещены на форме, связанной с этими столбцами. Таким образом, вы даже получаете разумный смысл для всех столбцов данных - это ваша карта.
Я не знаю, что здесь есть какая-то большая огромная круговая ссылка. Это все равно, что ткнуть пальцем в ногу, но потом пойти к врачу для какой-то огромной операции на открытом сердце. Таким образом, go для огромного массового кодирования и для того, чтобы потратить огромные суммы денег разработчиков на какую-то "редкую" проблему какой-то редкой и невидимой циклической ссылки - по сути, огромная дикая погоня за goose, которая будет Вы жевали огромное количество кода разработчика и время, когда вообще НИЧЕГО не требуется.
Я имею в виду, если, скажем, у вас открыто 3 экземпляра той же формы? Тогда как код узнает и ссылается на то, что такое форма? Ну, точно такой же подход c, используемый в типичном программировании ОО, может и должен быть использован здесь. Такой подход означает, что вы не жестко кодировать формы! имя или ссылки в коде когда-либо. Вы никогда не хотите этого делать.
Итак, если вы находитесь в подформе и вам нужно ссылаться на данные или элементы управления в родительской форме?
Вы можете сделать это:
strLastName = forms! FrmCustomer! LastName
Выше мы жестко закодировали имя формы. Вы не хотите этого делать.
В этой подчиненной форме правильный способ написания этого кода:
strLastName = me.Parent.form! LastName
Сейчас Обратите внимание, как вышесказанное ссылается на родительскую форму. Таким образом, этот код будет работать ДАЖЕ, если у нас одновременно будет 3 активных копии frmCustomer. Вы можете полностью ссылаться НИЧЕГО в форме по ее объекту «экземпляр». Так, в JavaScrip, или c#, вы часто видите «this.SomProperty» как ссылку на этот объект.
В доступе вы можете сделать то же самое и использовать «я». Или me.Parent.From для ссылки на родительскую форму. Таким образом, в качестве общего подхода, вы НИКОГДА не должны ссылаться на жесткие формы кода. Если вы воспользуетесь этим подходом, то все проблемы циклических ссылок будут не только устранены, но и тогда вы используете классический c и традиционный подход к объектному программированию и объектным ссылкам. Хотя Access не является полностью ОО, он, безусловно, следует многим концепциям ОО-проектирования, и то, как формы работают в Access, скорее всего, являются экземплярами объекта.
Попытка написать загруженный код кода, когда объектная модель форм уже существует в виде «единого» экземпляра объекта класса этой формы, не имеет смысла и не требуется, и путь, по которому вы идете, скорее всего, затруднит и уменьшит ваши возможности для разберитесь с экземпляром fantasti c той формы, которая у вас уже есть.
Как уже отмечалось, к форме уже прикреплены словари и столбцы, и Access EVEN генерирует элементы для вашего автомата c. В результате вы можете ссылаться на любой столбец таблицы, к которому привязана форма, с помощью
me.LastName me! LastName
В то время как два вышеуказанных формата разрешены, первый (me + точка) + имя столбца) на самом деле является членом класса форм. Вы обнаружите, что если вы используете код для установки источника данных форм, то часто эти элементы НЕ генерируются для вас, и, следовательно, вы должны использовать! (взрыв), чтобы ссылаться на столбцы из таблицы для этой формы.
Итак, я не получаю asp, пока вы пытаетесь выполнить весь этот дополнительный код, когда форма имеет все способности, которые вы запрашиваете в объекте класса.