Проблема сохранением

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
dimalib
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 08.12.2003 (Пн) 8:03

Проблема сохранением

Сообщение dimalib » 03.03.2004 (Ср) 14:05

Привет. Никак не могу правильно сохранить.
Пишу на первую кнопку:
Text10.Text = ""
rs.AddNew
а на второй:
If Text10.Text = "" Then
rs("01-10") = "0"
Else
rs("01-10") = Text10.Text
End If
rs.Update
rs.Bookmark = rs.LastModified
MsgBox "Запись сохранена ", vbInformation, Caption

Проблема в том что не могу изменит текущую запись
Ругается что не хватает AddNew или Edit
Если добавит edit на вторую кнопку сохраняет сверху записи при этом уничтожая старые даные. Помогите пожалуйста. Заранее спасибо. :shock:

dimalib
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 08.12.2003 (Пн) 8:03

Сообщение dimalib » 03.03.2004 (Ср) 14:33

Проблему решил. Просто поставил вторую кнопку сохранить сверху другого. В одном из них стоит rs.edit а на втором rs.addNew. Но не очень красиво обошел проблему. Если кто ни будь укажет правильный путь буду рад. :lol: :shock:

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 03.03.2004 (Ср) 17:55

Ну, вообще-то все логично. Смотри:
есть 2 действия
1) добавить новую запись в таблицу
2) отредактировать существующую

для того, чтобы добавить, надо выпонить следующие действия
1) rs.AddNew - добавить пустую строчку в рекордсет
2) rs("MyField") = MyValue 'записать значения в колонки
3) rs.Update - отправить эти значения в базу

для того, чтобы отредактировать
1) встать на запись в rs, которую хотим редактировать
2) rs.Edit - включить режим редактирования записи
3) rs("MyField") = MyValue 'изменить значения в колонках
4) rs.Update - отправить эти значения в базу

Не совсем понятно, зачем ты делал AddNew на отдельной кнопке, если ты не собирался по этой кнопке добавлять новую строчку.
Видимо, ты нажимал на вторую кнопку, не нажав на первую. Тогда, конечно, будет эта ошибка - VB не находится ни в режиме добавления записи, ни в режиме редактирования, о чем тебе и сообщал.

Делай эти 2 последовательности действий (для добавления и для редактирования) целиком там, где это тебе нужно - не разделяй их на отдельные куски.
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

dimalib
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 08.12.2003 (Пн) 8:03

Сообщение dimalib » 04.03.2004 (Чт) 6:46

Дело в том что я хотел одним кнопкой отправить значение в базу.
Ну типа:
Кнопка добавить новую запись:
text1.text= “”
rs.addnew
Кнопка изменить запись:
rs.edit
text1.text=rs.fields(“zapis”)
Кнопка сохранить запись:
rs.(“zapis”)=text1.text
rs.Update
rs.Bookmark = rs.LastModified
MsgBox "Запись сохранена ", vbInformation, Caption

Вот как я хотел и при этом я думал что если rs не закрыта то все будет путем :) :shock:

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 04.03.2004 (Чт) 12:00

а, понятно... редактируешь прямо в гриде...
Если бы я делала, то я бы на кнопку Add вызывала бы отдельную модальную форму, где редактировала бы спокойно. Когда там нажали Ok - добавляла бы запись в рекордсет с нужными значениями. Но это мой стиль - мне так удобнее.

Могу посоветовать обезопасить себя от нажатия на кнопки в неправильной последовательности. Пусть на форме 4 кнопки: Add, Edit, Save, Cancel (отменить редактирование или добавление).
Add.Enabled = true Edit.Enabled = true Save.Enabled = false Cancel.Enabled = false

1) Нажали на кнопку Add (или Edit):
Add.Enabled = false Edit.Enabled = false Save.Enabled = true Cancel.Enabled = true

2) Нажали на Save (или Cancel)
Add.Enabled = true Edit.Enabled = true Save.Enabled = false Cancel.Enabled = false
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList