2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 ошибка при обращении к форме Access через строк переменную
Сообщение05.08.2019, 18:13 
Здравствуйте, господа.
Помогите пожалуйста с проблемой в работе MS Access 2009.
Создал относительно простую БД. В целом все работает. Но при при попытке выполнить Requery формы при обращении к ней через строковую переменную strNameMainForm (естеств. название формы в этой переменной) вылезает ошибка:
Цитата:
Run-time error '2450'
Приложению MS Office Access не удается найти форму “strNameMainForm” , указанную в выражении макроса или в программе Visual Baisic

Причем, что интересно эта ошибка вылезает только когда я использую выражение типа:
Forms!strNameMainForm.Requery
или
Forms![strNameMainForm].Requery

Но ошибки нет, когда я использую русское название формы, т.е. когда просто
Forms![МояФорма].Requery,
то все получается нормально.

Помогите пожалуйста мне преодолеть это затруднение. Буду очень благодарен.
Я "облазил" интернет в поисках ответа. Но ничего не нашел. Перепробовал разные варианты, используя DoCmd, но никак не получается.
Конечно можно для обновления закрыть, а потом открыть эту несчастную форму, обращаясь к ней через строковую переменную. Но это такой вариант, который покойный А.Райкин называл "почесать переднее правое ухо через левую заднюю ногу" (с). И он не очень хорош для больших БД.

Прошу уважаемых модераторов, перенести в нужный отдел, если положил не туда.

 
 
 
 Re: ошибка при обращении к форме Access через строк переменную
Сообщение05.08.2019, 18:24 
Аватара пользователя
Насколько я понял из документации, надо Forms(strNameMainForm).Requery. Проверить не могу.

 
 
 
 Re: ошибка при обращении к форме Access через строк переменную
Сообщение05.08.2019, 18:48 
Уважаемый Xaositect
Xaositect в сообщении #1408841 писал(а):
Насколько я понял из документации, надо Forms(strNameMainForm).Requery. Проверить не могу.
Большое спасибо за подсказку. Вроде получается. Надо еще проверить. Я пробовал, в том числе и со скобками. Но что-то не получалось. А где можно увидеть эту документацию? Если Вам не трудно, пожалуйста дайте ссылочку, или скажите, что нужно набрать, чтобы это увидеть (в английском я не силен, поэтому и спрашиваю).

 
 
 
 Re: ошибка при обращении к форме Access через строк переменную
Сообщение05.08.2019, 19:00 
В переменную данные передаются по значению или по ссылке, возможно у вас передача по ссылке, а со ссылкой что-то не то (например, передается через функцию, а в функции передача по значению, а не по ссылке, ну или как -то примерно так). То есть когда программа видит strNameMainForm, она пытается найти по этой ссылке данные, а их нет или еще что-либо.

 
 
 
 Re: ошибка при обращении к форме Access через строк переменную
Сообщение05.08.2019, 19:58 
upgrade в сообщении #1408849 писал(а):
возможно у вас передача по ссылке
Нет, насколько помню, Form!... предполагает константу. Квадратные скобки — запись константы, а не элемент массива.

 
 
 
 Re: ошибка при обращении к форме Access через строк переменную
Сообщение05.08.2019, 20:07 
У вас форма называется "strNameMainForm"? Или strNameMainForm- это переменная, которой где-то присваивается значение "МояФорма":
strNameMainForm="МояФорма"?

-- 05.08.2019, 20:11 --

sqribner48 в сообщении #1408840 писал(а):
при обращении к ней через строковую переменную strNameMainForm
Вы пишете.

 
 
 
 Re: ошибка при обращении к форме Access через строк переменную
Сообщение06.08.2019, 19:59 
Я писал
sqribner48 в сообщении #1408840 писал(а):
... при попытке выполнить Requery формы при обращении к ней через строковую переменную strNameMainForm (естественно название формы в этой переменной) вылезает ошибка:
upgrade
upgrade в сообщении #1408854 писал(а):
У вас форма называется "strNameMainForm"? Или strNameMainForm- это переменная, которой где-то присваивается значение "МояФорма":
strNameMainForm="МояФорма"?
Из моего первого сообщения (отрывок из которого я привел) видно, что моя форма не называется "strNameMainForm". А strNameMainForm - это переменная, которой присваивается значение типа "МояФорма".
upgrade в сообщении #1408854 писал(а):
Вы пишете.
Тут писать больше нечего. :-)
Вариант, предложенный Xaositect, сработал.
Всем большое спасибо. Особенно Xaositect.

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group