Чтобы лучше понять, что происходит
Одно значение обновляется в каждой строке, потому что строка вашего запроса вычисляется при загрузке формы.
В это время переменная Tunniste
получает значение из элемента управления, с которым она связана (в вашем случае, вероятно, элемент управления, указывающий на поле в наборе записей той же таблицы).
Таким образом, предполагая, что Tunniste равен 1 для текущей записи в Form_Load, база данных завершает выполнение запроса
UPDATE Korut SET [Tarkiste]=('1');
, где
UPDATE Korut SET [Tarkiste]=[Tunniste];
сделает правильную вещь.
На что обратить внимание:
- вы можете (должны) тестировать и создавать свою команду SQL независимо от событий формы (особенно, если ни один из параметров запроса не зависит от значений в форме, связанных или не связанных); запуск SQL происходит в собственном пространстве
- Используйте визуальный конструктор запросов, чтобы попрактиковаться в навыках SQL (переключитесь в режим SQL и обратно, чтобы понять, что происходит)
- читать о том, как данные связаны с формой
- вы обновляете все записи в таблице каждый раз, когда загружается форма, и (если это обычная форма редактирования) это, безусловно, не оптимально (вы можете, по крайней мере, добавить условие WHERE в SET [Tarkiste] только в случае, если значения разные), это будет плохо масштабироваться
- вы, похоже, используете разные типы данных для одного и того же поля и преобразования без вывода сообщений; это может иметь неприятные последствия
Возможно, объяснение того, чего вы пытаетесь достичь, принесет лучший совет.