Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
wladimirrr
Member

Откуда:
Сообщений: 196
Приветствую всех! С прошедшими праздниками! Помогите разобраться, чего не хватает на компе, на котором возникает эта ошибка?

К сообщению приложен файл. Размер - 132Kb
8 янв 19, 20:09    [21780069]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
wladimirrr
Member

Откуда:
Сообщений: 196
wladimirrr
Приветствую всех! С прошедшими праздниками! Помогите разобраться, чего не хватает на компе, на котором возникает эта ошибка?


К сообщению приложен файл. Размер - 12Kb
8 янв 19, 20:09    [21780070]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 397
нужно
docmd.openform "FormMain",acNormal,,,acFormEdit
+
а лучше
docmd.openform "FormMain"
поскольку все остальные значения - умолчальные
8 янв 19, 20:45    [21780081]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
vmag
Member

Откуда: MP
Сообщений: 3048
wladimirrr,

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

Можно Start не закрывать, а делать visible формы = false
тогда в любой момент Forms!Start!Worker будет доступно ото всюду,
и не нужно таскать значение поля одной формы по полям других форм,
а еще есть глобальные переменные, где можно хранить значения на сеанс работы...
8 янв 19, 20:59    [21780082]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
wladimirrr
Member

Откуда:
Сообщений: 196
alecko
нужно
docmd.openform "FormMain",acNormal,,,acFormEdit
+
а лучше
docmd.openform "FormMain"
поскольку все остальные значения - умолчальные


Форма открывается нормально. Ругается на команду переноса данных из формы Start в MainForm/
8 янв 19, 21:06    [21780084]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
wladimirrr
Member

Откуда:
Сообщений: 196
vmag, интересный вариант, попробую
8 янв 19, 21:07    [21780087]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
wladimirrr
Member

Откуда:
Сообщений: 196
vmag
wladimirrr,

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

Можно Start не закрывать, а делать visible формы = false
тогда в любой момент Forms!Start!Worker будет доступно ото всюду,
и не нужно таскать значение поля одной формы по полям других форм,
а еще есть глобальные переменные, где можно хранить значения на сеанс работы...


Невидимость не помогла. Я грешу на команду переноса данных из формы в др. форму. Может в ней что-то не так?
8 янв 19, 21:17    [21780094]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5458
wladimirrr,
Как я понял это стартовая форма и после ввода соответствующего пароля разрешается использование БД с определенными правами
Поясните,что должно произойти после ввода юзером правильного\неправильного(ну это ясно) пароля в поле password (за какой такой острой необходимостью в процедуре фигурирует "MainForm" )
8 янв 19, 22:35    [21780124]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
wladimirrr
Member

Откуда:
Сообщений: 196
sdku
wladimirrr,
Как я понял это стартовая форма и после ввода соответствующего пароля разрешается использование БД с определенными правами
Поясните,что должно произойти после ввода юзером правильного\неправильного(ну это ясно) пароля в поле password (за какой такой острой необходимостью в процедуре фигурирует "MainForm" )

После ввода правильного пароля открывается главная форма MainForm, в которой есть поле, где должно фиксироваться имя юзера. (поле Worker). Далее, если юзер из главной формы создает новые записи, то в них тоже должно фиксироваться его имя (переноситься с главной формы, которая все время сеанса открыта).
8 янв 19, 23:02    [21780130]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
wladimirrr
Member

Откуда:
Сообщений: 196
sdku,
почему то на компе клиента не работает строка Forms!MainForm!Worker = Forms!Start!Worker в коде, а так же макросы типа SetValue (задать значение).
8 янв 19, 23:07    [21780134]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5458
wladimirrr,
Почему на одном РС работает,а на другом нет-не знаю,но изначально можно записать имя пользователя во временную (мааааленькую)таблицу,создаваемую при входе в БД (ссылка на неё на всех компьютерах будет одинакова, а значение на каждом свое),которую удалять при выходе.В любых процедурах(в том числе и как значение по умолчанию при создании новых записей в других таблицах),в течение сеанса будет использоваться имя текущего пользователя
9 янв 19, 01:05    [21780165]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
vmag
Member

Откуда: MP
Сообщений: 3048
wladimirrr
Невидимость не помогла. Я грешу на команду переноса данных из формы в др. форму.

Не нужно переносить, нужно это значение брать из скрытой формы Start
wladimirrr
После ввода правильного пароля открывается главная форма MainForm, в которой есть поле, где должно фиксироваться имя юзера. (поле Worker). Далее, если юзер из главной формы создает новые записи, то в них тоже должно фиксироваться его имя (переноситься с главной формы с формы Start, которая все время сеанса открыта и скрыта).
9 янв 19, 01:47    [21780178]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
vmag
Member

Откуда: MP
Сообщений: 3048
и кстати, воркер в старте это не поле, а поле со списком вроде...
если команду переноса заремить а вместо неё написать

MsgBox Forms!Start!Worker

Что будет? Имя юзера?
9 янв 19, 01:55    [21780180]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
wladimirrr
Member

Откуда:
Сообщений: 196
sdku
wladimirrr,
Почему на одном РС работает,а на другом нет-не знаю,но изначально можно записать имя пользователя во временную (мааааленькую)таблицу,создаваемую при входе в БД (ссылка на неё на всех компьютерах будет одинакова, а значение на каждом свое),которую удалять при выходе.В любых процедурах(в том числе и как значение по умолчанию при создании новых записей в других таблицах),в течение сеанса будет использоваться имя текущего пользователя

Есть какой нибудь пример или описание как это сделать? Я пока такой сценарий не использовал.
9 янв 19, 14:56    [21780628]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
wladimirrr
Member

Откуда:
Сообщений: 196
vmag
wladimirrr
Невидимость не помогла. Я грешу на команду переноса данных из формы в др. форму.

Не нужно переносить, нужно это значение брать из скрытой формы Start
wladimirrr
После ввода правильного пароля открывается главная форма MainForm, в которой есть поле, где должно фиксироваться имя юзера. (поле Worker). Далее, если юзер из главной формы создает новые записи, то в них тоже должно фиксироваться его имя (переноситься с главной формы с формы Start, которая все время сеанса открыта и скрыта).

Какая разница из какой формы брать? При создании новой записи надо преносить данные Worker (ID, число) в создаваемую запись, а это как раз и не получается(
9 янв 19, 14:59    [21780635]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
wladimirrr
Member

Откуда:
Сообщений: 196
vmag
и кстати, воркер в старте это не поле, а поле со списком вроде...
если команду переноса заремить а вместо неё написать

MsgBox Forms!Start!Worker

Что будет? Имя юзера?

Там число - ID юзера из таблицы Workers.
9 янв 19, 15:01    [21780637]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 149
wladimirrr, у DoCmd.OpenForm есть аргумент OpenArgs. Можно передать туда значение при вызове. Тогда в MainForm это значение будет доступно в свойстве Me.OpenArgs.
На Open или Load формы можно присвоить его полю (кстати, это свободное поле в заголовке/примечании?).
9 янв 19, 15:28    [21780674]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
wladimirrr
Member

Откуда:
Сообщений: 196
Кривцов Анатолий
wladimirrr, у DoCmd.OpenForm есть аргумент OpenArgs. Можно передать туда значение при вызове. Тогда в MainForm это значение будет доступно в свойстве Me.OpenArgs.
На Open или Load формы можно присвоить его полю (кстати, это свободное поле в заголовке/примечании?).

Анатолий, а как правильно задать этому аргументу значение Worker? В стороке DoCmd.OpenForm или отдельной строкой?
Попробовал задать так: DoCmd.OpenForm "MainForm", acNormal, OpenArgs = Forms!Start!Worker, "", , acNormal, в форме MainForm на onLoad не возвращает.
9 янв 19, 16:14    [21780754]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 149
wladimirrr
а как правильно задать этому аргументу значение Worker? В стороке DoCmd.OpenForm или отдельной строкой?
Попробовал задать так: DoCmd.OpenForm "MainForm", acNormal, OpenArgs = Forms!Start!Worker, "", , acNormal, в форме MainForm на onLoad не возвращает.

wladimirrr, вы бы хоть справку посмотрели. OpenArgs, это последний аргумент метода, а вы всунули свою конструкцию в "FilterName".
Пробуйте так:
DoCmd.OpenForm "MainForm", acNormal, , , , acNormal, Forms!Start!Worker
или
DoCmd.OpenForm "MainForm", acNormal, , , , acNormal, Me!Worker
9 янв 19, 16:25    [21780766]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
wladimirrr
Member

Откуда:
Сообщений: 196
Кривцов Анатолий, Спасибо!
9 янв 19, 17:31    [21780878]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
Serg197311
Member

Откуда:
Сообщений: 307
Спрошу здесь.... так как проблема похожа
на форме программно удаляются и добавляются контролы. Форма сохраняется и открывается в норм виде, на ней выполняются операции, форма закрывается и далее по кругу.
форма открывается командами
DoCmd.OpenForm "frm", acDesign 
DoCmd.OpenForm "frm", acnormal


Периодически, непредсказуемо вылетает та же ошибка что и у ТС.
после первого появления ошибки она возникает уже всегда, и можно только удалить форму и создать ее заново. Тогда нормальная работа какое-то время продолжается.
Можно ли с этим как-нибудь бороться?
Access какой-то из последних, не 2010 точно
11 янв 19, 08:40    [21782412]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 397
Serg197311, проблема совсем не такая, у формы есть ограничение на количество контролов, причем при удалении оных счетчик не уменьшается, энтропия формы такая-счетчик только увеличивается, при достижения лимита вылетит ошибка- это сразу навскидку, и с этим лучше не играться - в компилированном формате контролы программа создавать не сможет. у тс же проблема-следствие небрежности-косяки наслаиваются и вываливают в ошибку "на ровном месте".
11 янв 19, 09:49    [21782465]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 3856
Serg197311, такая да не такая - нужно создавать свой топик.
По сабжу, никто в трезвом уме и здравой памяти так не делает. На количество объектов у Access есть ограничение - смотри спецификацию. Счётчики объектов, ЕМНИП, но могу ошибаться, сбрасываются при сжатии бд.
Решение - создают контролы с запасом, делают их невидимыми, далее в коде "рулят" их свойствами (источники данных, видимость, положение и прочее)
11 янв 19, 09:53    [21782467]     Ответить | Цитировать Сообщить модератору
 Re: ошибка Method 'Item' object 'Forms' failed на одном компе, а на другом все работает.  [new]
Serg197311
Member

Откуда:
Сообщений: 307
пожалуй да.... лучше видимостью управлять.... Так и переделаю.
11 янв 19, 10:16    [21782491]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить