| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > База данных Access |
| Автор: prishelec 24.10.2006, 16:52 |
| Доброе время суток! Ситуация такая: имеется БД Access. К ней подключен элемент Data. Необходимо обновить ряд полей в одной из таблиц. Используется код: Dim SQL as String SQL = "UPDATE Таблица SET Таблица.Столбец3 = 1 WHERE Таблица.Столбец3 = " + _ Переменная + ";" Data1.RecordSource = SQL Ошибок при выполнении не происходит. Но, вместо того, чтобы обновлять соответствующие поля, запрос целиком удаляет!!! строки отвечающие условию WHERE!!!! В чем подвох? Помогите кто знает! |
| Автор: boevik 24.10.2006, 17:11 |
| При операции update не происходит извлечение записей из таблицы. Поэтому RecordSource не получает записи. Лучше и правильнее использовать ADODB.Connection метод execute и т.д.. Поиск по форуму даст ответ как использовать вышеназванные элементы. |
| Автор: Akina 24.10.2006, 17:52 |
| Вот уж воистину "программа делает то, что скажешь, а не то что хочешь"... |
| Автор: prishelec 25.10.2006, 10:14 | ||
Еще как происходит! Извлекаются начисто! А как Вы объясните следующее... После выполнения кода: Dim SQL As String SQL = "SELECT * FROM Таблица WHERE (Таблица.Столбец3 = " + Переменная + ");" Data1.RecordSource = SQL Data1.Refresh Text1.DataField = "Столбец3" вручную меняешь значения в текстовом поле, перемещаешся по Рекордсету с помощью стрелок элемента Data, а в конце Data1.Refresh все работает и значения обновляются. А вот тоже самое программным способом: Dim SQL As String SQL = "SELECT * FROM Таблица WHERE (Таблица.Столбец3 = " + Переменная + ");" Data1.RecordSource = SQL Data1.Refresh Text1.DataField = "Столбец3" Do Until Data1.Recordset.EOF Text1.Text = "1" Data1.Recordset.MoveNext Loop Результат как в первом сообщении. Строки целиком удаляются!!! Что скажете? |
| Автор: prishelec 25.10.2006, 11:35 |
| Все, спасибо всем, сам разобрался. |