|
|
|
| Акс 2007.
Private Sub Qty_BeforeUpdate(Cancel As Integer)
If Nz(Me.Qty, 0)>Nz(Me.Qty.OldValue, 0) Then
Cancel = True
Me.Qty.Undo
End If
End Sub
|
Если условие выполняется, то получаю предупреждение (не ошибку!):
Property not found!
OK Help
|
Если закомментировать строчку
то предупреждения не получаю, но и код становится бесполезным, т.к. не отменяет событие.
Попробовал закомментировать все остальные обработчики событий этого контрола - все равно такая же петрушка.
О каком свойстве идет речь?
Help дает весьма бесполезные сведения:
Property not found. (Error 3270)
The specified property could not be found.
Possible causes:
- The property does not exist. Check the spelling of the property in your code.
- If the property is user-defined, it may have been deleted from the collection.
- You do not have adequate permissions to create a list on the specified Microsoft Windows SharePoint Services site.
|
| |
|
| |
|
|
|
| Понял, что загвоздка в том, что в данные в форме собраны из нескольких таблиц посредством INNER JOIN. Это не дает выполнить в обработчике BeforeUpdate не только Cancel, но и Refresh формы, чтобы сохранить изменения. Не совсем понял ситуацию, и как тут правильно поступить, но переделал вот так:
Private Sub Qty_AfterUpdate()
If Nz(Me.Qty, 0) > Nz(Me.Qty.OldValue, 0) Then
Me.Qty = Me.Qty.OldValue
Me.Refresh
Else
Me.Refresh
End If
End Sub
|
работает. | |
|
| |