|
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)
Попытка использовать таблицу, которая в данное время открыта другим пользователем с монопольным доступом, или обработать в программе таблицу, открытую с помощью интерфейса пользователя. Учтите соответствующее условие и повторите операцию.
| |
|
| |
|
15 Кб. |
|
| странно... дело в чем-то другом
вот симитировал ваш пример... вроде работает. | |
|
| |
|
|
|
| Ааа ..Блокировка записей формы имела значение "Всех"! Или тип рекодсета формы мона было поменять и всё. Статический же не блокирует,.. вот блин... | |
|
| |
|
|
|
| Следующий вопрос появился, только первый решил:
Почему не работает вот это:
Me!ActiveControl = Me.Calendar2.Value
|
вместо вот этого?
Forms!Заказы.ActiveControl = Me.Calendar2.Value
|
Ругается, что не может найти поле ActiveControl (Run-time error 2465), а вот такой синтаксис вообще не вызывает никакой реакции и не меняет значение поля:
Me.ActiveControl = Me.Calendar2.Value
|
или можно ли программно поменять одну строку кода другой??? | |
|
| |
|
|
|
| фик ево знает... может Screen.ActiveControl? | |
|
| |
|
|
|
| Да точно, только Screen.ActiveForm.ActiveControl и только с ним никак не хочет работать мой ActiveX-ный календарик. Так вот: Forms.Заказы.ActiveControl подставляет значение в поле, страННо!? | |
|
| |
|
|
|
| я так понял у Вас всё получилось...........
или нет? | |
|
| |
|
|
|
| При открытии формы кодом (см. 1-й код ветки) получаю три окна с запросом параметра, типа Формы!Заказы!Days. Просто игнорируя Cancel-ом или нажимая ОК все 3 раза получаю форму Заказы с нужной мне записью, т.е. все как надо.
ВОПРОС: Почему при открытии экземпляра ругается именно на опр. поля и как обойти?Спасибо | |
|
| |