С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 21.03.2008
Сообщений: 26

Ошибка редактирования полей в RECORDSET

09.01.2010, 22:44. Показов 2553. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Работаю в VB6 + ADO + ACCESS
Клиентский курсор

Добавление записи:
При присваивании пустого значения TEXTBOX числовому полю RECORDSET запись добавляется.
Visual Basic
1
Recordset.Fields('A').Value=TextBox1.TEXT
В поле лежит значение NULL.

При вводе числового значения в TEXTBOX и попытке уже редактировать запись выдается ошибка о невозможности редактирования колонки.
Descriptor Row cannot be located for updating. Some values may have been changed since it was last read
HelpFile C:WINDOWSHelpVBENLR98.CHM
HelpContext 1000440
Number -2147217864
Source 'Microsoft Cursor Engine'
Как с этим бороться не вводя значение поля по умолчанию.
У меня может быть любое значение числа и хотелось бы использовать NULL, как признак не введенного значения.

И заодно вопрос как выйти на Help по номерам ошибок либо во встроенной справке, либо на сайте MS.

Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2010, 22:44
Ответы с готовыми решениями:

Recordset не дается для редактирования
Сервер БД: MS SQL Server 2000 SP2 Среда: VB 6.0 EE SP5 Код: rs.CursorLocation = adUseClient rs.CursorType = adOpenKeyset ...

Ошибка редактирования полей объеденных таблиц
Доброго времени суток! У меня в Аксесе есть две таблицы. Необходимо, чтобы программа на делфи могла выводить на экран и редактировать...

Ошибка! Объект не может быть создан из кодов полей редактирования.,
Ребята всем здраствуйте ,у меня опять проблема!!!! формулы которые забивал, они стали картинками...

6
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
10.01.2010, 12:50
после каждого изменения записи нужно делать Update или используй метод UpdateBatch, если хочешь сохранять все сделанные изменения одним махом.
0
0 / 0 / 1
Регистрация: 05.11.2006
Сообщений: 133
10.01.2010, 14:10
Сделай лучше так, проверяй если в поле введены числа, то делай преобразование типа(CINT), т.к. TextBox1.TEXT всегда возвращает тебе String
Visual Basic
1
2
3
4
5
IF IsNumeric(TextBox1.TEXT) THEN
  Recordset.Fields('A').Value=CINT(TextBox1.TEXT)
ELSE
  Recordset.Fields('A').Value=NULL
END IF
0
0 / 0 / 0
Регистрация: 21.03.2008
Сообщений: 26
10.01.2010, 22:39  [ТС]
Я конечно делаю после Addnew update, Редактирование не проходит, если новую запись тут же пытаюсь отредактировать.

Спасибо за советы, конечно извратиться можно, но интересно узнать откуда ноги растут, в DAO такой проблемы не было. Или это глюки?
0
0 / 0 / 1
Регистрация: 05.11.2006
Сообщений: 133
11.01.2010, 08:16
Необходимо закрыть рекордсет
[code]Recordset.Close[code]
а потом вновь открыть его и сделать редактирование

Visual Basic
1
2
3
4
Recordset.Source = 'SQL-запрос'
Recordset.Open
Recordset.Fields('A').Value=TextBox1.TEXT
Recordset.Update
0
0 / 0 / 0
Регистрация: 21.03.2008
Сообщений: 26
11.01.2010, 23:31  [ТС]
Да, согласен это сработает, но запрос на клиенте и перезапрашивать после каждого addnew да еще потом искать где стоял довольно долго мне кажется
0
0 / 0 / 1
Регистрация: 05.11.2006
Сообщений: 133
12.01.2010, 07:25
А по другому не получится, т.к. ADO не поймет, какую запись клиент хочет отредактировать. То что только что произошло добаление (AddNew) новой записи не означает, что курсор так и остался стоять на ней, он 'сходит' с этой записи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.01.2010, 07:25
Помогаю со студенческими работами здесь

Редактирование поля: Recordset.edit recordset.Fields('поле') = Text1.text Recordset.update
Есть Recordset базы mdb, некоторые поля в базе пустые. Т.е. Recordset.Fields ('поле') возвращает Null. Когда пытаюсь отредактировать запись...

Проблемы с кодом Recordset.AddNew() Recordset(0) = '01/02/2002' Recordset.Update()
Recordset.AddNew() Recordset(0) = '01/02/2002' Recordset.Update() //----------дает результат 1 февраля 2002 Recordset.AddNew() ...

Перебираем свойства полей таблицы Recordset
Уважаемые эксперты! Создаю рекордсет на основе таблицы mdb. (или запроса), далее перебираю поля. Dim rs As New ADODB.Recordset ...

Запрет редактирования полей формы по таймеру. Возможно?
Всем привет и хорошего настроения! ;) Есть форма которую заполняет юзер и сохраняет, закрывая окно этой формы. Но иногда требуется...

Вывод всех полей на форме для редактирования
Всем доброго времени суток! В процессе работы у меня возник вопрос: На прилагаем вложении слева есть форма с выводом всех полей из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru