ник: П.Полиграфович
На кнопку в форме "Всезаказы" вешаю код:
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)
Попытка использовать таблицу, которая в данное время открыта другим пользователем с монопольным доступом, или обработать в программе таблицу, открытую с помощью интерфейса пользователя. Учтите соответствующее условие и повторите операцию.