|
|
|
| Непонятно как испортилась работающая форма. Есть кнопка с кодом на OnClick
DoCmd.GoToRecord Record:=acNewRec
|
Нажатие стало ни с того ни с сего вызывать ошибку
Run time error 2105 You can't go to the specified record.
|
Причём recordsource просто таблица. Все свойства формы разрешающию модификацию данных установлены.
Заменяю вышеуказанную строчку кода на
Set rs = Me.Recordset
With rs
.AddNew
!Date = Now
!SupplierID = 1
.Update
End With
|
Этот код работает только когда в форме находишься на последней записи. Иначе выдает ошибку
Run time error 3020. Update or CancelUpdate without AddNew or Edit
|
на следующей после AddNew строчке | |
|
| |
|
|
|
| DoCmd.GoToRecord Record:=acNewRec
а зачем тут двоеточие и знак равенства? | |
|
| |
|
|
|
| Это альтернативный способ записи команды с именованными параметрами. тоже самое что
DoCmd.GoToRecord , , acNewRec
Видимо ни у кого никаких идей не возникло, а жаль. Мои попытки решить проблему тоже пока безрезультатны. Сжатие БД не помогло. Создал пустую БД и импортировал все объекты из проблемной БД. При импортировании возникали ошибки на некоторых объектах, но проблемных объектов среди них не было. Результат по прежнему нулевой. | |
|
| |
|
|
|
| ну все очень похоже на невозможность или запрет на добавление записей. либо из за прав или из-за свойств формы | |
|
| |
|
|
|
| не так всё просто :-) я уже говорил что нужные свойства формы установлены и что она базируется на простой таблице. Других пользователей или форм использующих эту таблицу нет. Сама таблица правда связанная локально но думаю это не имеет значения. До этого это форма работала а потом без видимых причин перестала.
Да Ещё вот что. К уже цитированному коду добавил строку перехвата ошибки
On Error Resume Next
после этого кнопка с полученным кодом
On Error Resume Next
Set rs = Me.Recordset
With rs
.AddNew
!Date = Now
!SupplierID = 1
!InvoiceIn = Nz(DMax("InvoiceIn", "ProductIn")) + 1
.Update
End With
|
Стала срабатывать после двукратного нажатия
Кто нить может это как то объяснить? | |
|
| |
|
|
|
| снести офис? | |
|
| |
|
|
|
| в обоих(2003 и 2007) то же самое | |
|
| |
|
|
|
| а пошагово в отладке - где спотыкается?
val(DMax("InvoiceIn", "ProductIn")) + 1 | |
|
| |
|
|
|
| Nz(DMax("InvoiceIn", "ProductIn"),0) | |
|
| |
|
|
|
| О чём это вы? Спотыкается на первой же строчке после AddNew. В данном случае
!Date = Now
Впрочем я уже обошёл эту проблемму. Просто хотелось бы на будущее понять истоки этой ошибки. | |
|
| |