Несколько вещей, которые вы можете проверить дважды. Вы используете TABLEUPDATE () и проверяете, что он возвращает true (.T.)? Это распространенная проблема. Как только вы узнаете, что это не удается, вы можете использовать AERROR (), чтобы определить причину.
IF TABLEUPDATE(.T., )<br>
* All is well, nothing to do <br>
ELSE<br>
AERROR(laError)<br>
* Message user and determine content of laError and how it failed.<br>
ENDIF
Другая распространенная проблема - не использовать псевдоним для TABLEUPDATE (), который является третьим параметром.
Поскольку вы видите данные в сетке, я предполагаю, что они правильно связаны, но это определенно еще одна потенциальная ловушка. Убедитесь, что RecordSource сетки является правильным, и каждый столбец ControlSource действителен.
Еще одна вещь. Если вы используете представление и у вас есть таблица представлений в среде данных, у вас может быть случай двойной буферизации, и вам необходимо сначала обновить представление, а затем обновить таблицу.
Рик Шуммер