Как программно добавить данные в базу - VB
Формулировка задачи:
Учусь программировать в Visual Basic 6.0. Есть расчетная программа, результаты которой выводятся в TextBox-сы. Создал базу данных «MyDB.mdb». База создавалась при помощи библиотек Microsoft DAO 3.6 Object Library. Соответственно база девственно чиста. В ней есть 5 столбцов. Создана CommandButton - «Записать в базу». Теперь мне надо по нажатию на CommandButton записать данные из TextBox-сов в соответствующие столбцы. Соответственно – сколько будет нажатий на CommandButton – столько должно и записей получиться. При этом каждая новая запись должна быть в новой строке. Никак не могу понять как это делается! Помогите, кто знает!
Я делал следующее:
Создал пробную БД - probnaya_bd.mdb
Создал новый проект
Подключил библиотеку Microsoft DAO 3.15 Object Library
В форму вставляю объект Data из окна ToolBox
Свойства Data :
имя –Data1
DatabaseName - C:\Program Files\Microsoft Visual Studio\VB98\проба записи данных в БД\probnaya_bd.mdb
Connect – Access
EOFAction –Add New
RecordSource - bd_proba_1
Вставил в форму 3 объекта TxtBox cо свойствами:
Имя- txt_Znachenie1 (и соответственно 2 и 3)
DataSource - Data1
DataField - Znacheni1 (и соответственно 2 и 3)
Вставил в форму объект CommandButton - «Записать в базу»
В поле код записал:
Private Sub Command_Click()
Data1.Recordset.Update
Data1.Recordset.Bookmark = Data1.Recordset.LastModified 'сохраняет последнее что было введено в объект
Data1.Recordset.AddNew
On Error Resume Next
MsgBox ("Данные добавлены в Базу данных.")
End Sub
Жму СТАРТ. В TxtBox –сы вставляю произвольные цифры, а затем кнопку «Записать в базу». Появился MsgBox. Открываю базу – записи есть. Все на своих местах. Меняю в TxtBox-сах значения, а затем жму кнопку «Записать в базу»… И появляется ошибка «Ошибка во время выполнения программы '3020': Uhdate or CancelUhdate without AddNew or Edit.». В коде желтым цветом выделено - Data1.Recordset.Update
Проверил несколько раз - бестолку. Открыл базу данны Access-ом и обнаружил, что несмотря на появляющуюся ошибку данные в базе меняютя. Но меняются-то в одной и той же строке. А надо, что бы каждая новая запись шла с новой строки
Я делал следующее:
Создал пробную БД - probnaya_bd.mdb
Создал новый проект
Подключил библиотеку Microsoft DAO 3.15 Object Library
В форму вставляю объект Data из окна ToolBox
Свойства Data :
имя –Data1
DatabaseName - C:\Program Files\Microsoft Visual Studio\VB98\проба записи данных в БД\probnaya_bd.mdb
Connect – Access
EOFAction –Add New
RecordSource - bd_proba_1
Вставил в форму 3 объекта TxtBox cо свойствами:
Имя- txt_Znachenie1 (и соответственно 2 и 3)
DataSource - Data1
DataField - Znacheni1 (и соответственно 2 и 3)
Вставил в форму объект CommandButton - «Записать в базу»
В поле код записал:
Private Sub Command_Click()
Data1.Recordset.Update
Data1.Recordset.Bookmark = Data1.Recordset.LastModified 'сохраняет последнее что было введено в объект
Data1.Recordset.AddNew
On Error Resume Next
MsgBox ("Данные добавлены в Базу данных.")
End Sub
Жму СТАРТ. В TxtBox –сы вставляю произвольные цифры, а затем кнопку «Записать в базу». Появился MsgBox. Открываю базу – записи есть. Все на своих местах. Меняю в TxtBox-сах значения, а затем жму кнопку «Записать в базу»… И появляется ошибка «Ошибка во время выполнения программы '3020': Uhdate or CancelUhdate without AddNew or Edit.». В коде желтым цветом выделено - Data1.Recordset.Update
Проверил несколько раз - бестолку. Открыл базу данны Access-ом и обнаружил, что несмотря на появляющуюся ошибку данные в базе меняютя. Но меняются-то в одной и той же строке. А надо, что бы каждая новая запись шла с новой строки
Решение задачи: «Как программно добавить данные в базу»
textual
Листинг программы
<font color="blue">Private</font> <font color="blue">Sub</font> Command1_Click() Data1.Recordset.AddNew <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д