Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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!!!!   smile 

В чем подвох? Помогите кто знает!

Автор: boevik 24.10.2006, 17:11
При операции update не происходит извлечение записей из таблицы.
Поэтому RecordSource не получает записи.

Лучше и правильнее использовать ADODB.Connection метод execute и т.д..
Поиск по форуму даст ответ как использовать вышеназванные элементы.

Автор: Akina 24.10.2006, 17:52
 smile 
Вот уж воистину "программа делает то, что скажешь, а не то что хочешь"...

Автор: prishelec 25.10.2006, 10:14
Цитата(boevik @ 24.10.2006,  17:11)
При операции update не происходит извлечение записей из таблицы.
 

Еще как происходит! Извлекаются начисто!  smile   (Шутка)
А как Вы объясните следующее...
После выполнения кода:

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

Результат как в первом сообщении. Строки целиком удаляются!!!    smile 

Что скажете?

Автор: prishelec 25.10.2006, 11:35
Все, спасибо всем, сам разобрался. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)