2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 ошибка при обращении к форме Access через строк переменную
Сообщение05.08.2019, 18:13 


13/05/14
476
Здравствуйте, господа.
Помогите пожалуйста с проблемой в работе 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 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Насколько я понял из документации, надо Forms(strNameMainForm).Requery. Проверить не могу.

 Профиль  
                  
 
 Re: ошибка при обращении к форме Access через строк переменную
Сообщение05.08.2019, 18:48 


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

 Профиль  
                  
 
 Re: ошибка при обращении к форме Access через строк переменную
Сообщение05.08.2019, 19:00 


07/08/14
4231
В переменную данные передаются по значению или по ссылке, возможно у вас передача по ссылке, а со ссылкой что-то не то (например, передается через функцию, а в функции передача по значению, а не по ссылке, ну или как -то примерно так). То есть когда программа видит strNameMainForm, она пытается найти по этой ссылке данные, а их нет или еще что-либо.

 Профиль  
                  
 
 Re: ошибка при обращении к форме Access через строк переменную
Сообщение05.08.2019, 19:58 
Заслуженный участник


16/02/13
4105
Владивосток
upgrade в сообщении #1408849 писал(а):
возможно у вас передача по ссылке
Нет, насколько помню, Form!... предполагает константу. Квадратные скобки — запись константы, а не элемент массива.

 Профиль  
                  
 
 Re: ошибка при обращении к форме Access через строк переменную
Сообщение05.08.2019, 20:07 


07/08/14
4231
У вас форма называется "strNameMainForm"? Или strNameMainForm- это переменная, которой где-то присваивается значение "МояФорма":
strNameMainForm="МояФорма"?

-- 05.08.2019, 20:11 --

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

 Профиль  
                  
 
 Re: ошибка при обращении к форме Access через строк переменную
Сообщение06.08.2019, 19:59 


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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group