Получить значение поля формы через модуль [VBA] - PullRequest
0 голосов
/ 11 апреля 2011

У меня есть программа, созданная с VBA, в доступе.У меня есть форма с полем chDate, и мне нужно получить значение поля в файле модуля с именем Global (не модуль класса).

Я пытался получить к нему доступ, но мне кажется, что я получаю пустое значение, строка,не ошибка.Я не специалист по VBA, он для меня новичок (у меня есть опыт работы с VBS).

Может кто-нибудь помочь мне и подсказать, как я могу получить доступ к значению поля формы через файл модуля?

Спасибо!

Ответы [ 3 ]

1 голос
/ 11 апреля 2011

Если вы можете предоставить пример кода, это может помочь нам найти решение.

Вот что может сработать:

Dim объект как экземпляр вашей формы, и установите экземпляр на новый экземпляр. Эти две строки сделают это (при условии, что форма называется frmForm)

Dim theForm as frmForm
Set theForm = new frmForm

затем покажите эту форму:

theForm.show

Форма получит фокус, поэтому вы можете заполнить поля. В этот момент, когда форма скрыта , ваш код должен иметь возможность извлекать поле следующим образом:

var1 = theForm.txtFormField.Text

Однако, если вы выгрузите форму в коде, все переменные, непосредственно связанные с формой, будут потеряны. В этом случае вы можете последовать примеру Oneide и установить для глобальной переменной значение поля формы. Вы можете сделать это в одном из обработчиков событий формы.

0 голосов
/ 11 апреля 2011

Насколько я знаю, вы пытаетесь получить данные неправильно.

Каждый раз, когда вы пытаетесь получить данные формы, из стандартного модуля , ваша форма, вероятно, уже будет закрыта или, если вы не открываете ее как ограниченное окно, значение не будет готов еще.

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

Помните, что VBA - это язык , управляемый событиями , и вам лучше использовать его сильные стороны, чем бороться с ними.

В качестве последнего слова, если это просто случайное кодирование, я предлагаю вам использовать глобальную переменную и сделать так, чтобы de Code Behind Form настроил его на событие изменения элемента управления.

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

И, если вы не возражаете, дайте нам больше информации о вашем исходном коде, чтобы получить лучшие ответы.

0 голосов
/ 11 апреля 2011

Дайте мне посмотреть, могу ли я вспомнить свои дни доступа.В вашем глобальном модуле вы должны получить доступ к полю формы, указав префикс имени формы, т.е. var1 = Form1.txtFirmField.Text

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...