Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не могу понять что с формой !!?
 
 автор: П.Полиграфович   (20.10.2008 в 12:42)   личное сообщение
13 Кб.
 
 

На кнопку в форме "Всезаказы" вешаю код:
Dim arrOrders() As Form_Заказы
Dim indx As Integer

Private Sub cmdЗаказ_Click()
indx = indx + 1
EDR = Me.lstOrders.Column(0)
ReDim Preserve arrOrders(1 To indx)
Set arrOrders(indx) = New Form_Заказы
arrOrders(indx).Visible = True
End Sub 

(для любой др. формы новый экземпляр создается без проблем)
в источник для "Заказы" через Form open:
Me.RecordSource = "SELECT * FROM Заказы WHERE Код_Заказы = " & EDR & ";"

получаю сообщение - прикрепил..
Если открываю так:
 DoCmd.OpenForm "Заказы ", , , , , , 1
и в Form_load:  If Me.OpenArgs = 1 Then 
Me.RecordSource = "SELECT * FROM Заказы WHERE Код_Заказы = " & EDR & ";" 

То же сообщение..
Если же открываю форму Заказы таким образом:
 stLinkCriteria = "[Код_Заказы] =" & Me![lstOrders]
            DoCmd.OpenForm "Заказы ", , , stLinkCriteria, , , 1

и убираю все из Form_load, ТО форма "Заказы" открывается на нужном заказе, НО ТОЛЬКО ОДИН РАЗ! при попытке открыть еще раз получаю то же сообщение. Закрываю форму "Всезаказы" открываю снова и все то же самое - только первое открытие. При этом программное закрытие формы через Docmd не помогает, Jet считает таблицу "Заказы" открытой!
Справка:Таблица <имя> уже открыта другим пользователем для монопольного доступа или открыта в интерактивном режиме и не может быть изменена в программе. (Ошибка 3008)
Попытка использовать таблицу, которая в данное время открыта другим пользователем с монопольным доступом, или обработать в программе таблицу, открытую с помощью интерфейса пользователя. Учтите соответствующее условие и повторите операцию.

  Ответить  
 
 автор: osmor   (20.10.2008 в 15:43)   личное сообщение
15 Кб.
 
 

странно... дело в чем-то другом
вот симитировал ваш пример... вроде работает.

  Ответить  
 
 автор: П.Полиграфович   (20.10.2008 в 17:51)   личное сообщение
 
 

Ааа ..Блокировка записей формы имела значение "Всех"! Или тип рекодсета формы мона было поменять и всё. Статический же не блокирует,.. вот блин...

  Ответить  
 
 автор: П.Полиграфович   (20.10.2008 в 18:35)   личное сообщение
 
 

Следующий вопрос появился, только первый решил:
Почему не работает вот это:

Me!ActiveControl = Me.Calendar2.Value

вместо вот этого?

Forms!Заказы.ActiveControl = Me.Calendar2.Value

Ругается, что не может найти поле ActiveControl (Run-time error 2465), а вот такой синтаксис вообще не вызывает никакой реакции и не меняет значение поля:

Me.ActiveControl = Me.Calendar2.Value

или можно ли программно поменять одну строку кода другой???

  Ответить  
 
 автор: Кабан   (20.10.2008 в 18:48)   личное сообщение
 
 

фик ево знает... может Screen.ActiveControl?

  Ответить  
 
 автор: П.Полиграфович   (21.10.2008 в 10:06)   личное сообщение
 
 

Да точно, только Screen.ActiveForm.ActiveControl и только с ним никак не хочет работать мой ActiveX-ный календарик. Так вот: Forms.Заказы.ActiveControl подставляет значение в поле, страННо!?

  Ответить  
 
 автор: час   (21.10.2008 в 20:35)   личное сообщение
 
 

я так понял у Вас всё получилось...........
или нет?

  Ответить  
 
 автор: П.Полиграфович   (24.10.2008 в 17:57)   личное сообщение
 
 

При открытии формы кодом (см. 1-й код ветки) получаю три окна с запросом параметра, типа Формы!Заказы!Days. Просто игнорируя Cancel-ом или нажимая ОК все 3 раза получаю форму Заказы с нужной мне записью, т.е. все как надо.
ВОПРОС: Почему при открытии экземпляра ругается именно на опр. поля и как обойти?Спасибо

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList