powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как программно добавить данные в базу
7 сообщений из 7, страница 1 из 1
Как программно добавить данные в базу
    #36558222
Kavalergrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Учусь программировать в 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-ом и обнаружил, что несмотря на появляющуюся ошибку данные в базе меняютя. Но меняются-то в одной и той же строке. А надо, что бы каждая новая запись шла с новой строки
...
Рейтинг: 0 / 0
Как программно добавить данные в базу
    #36558254
Gwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kavalergrad,
Вы мешаете всё в одну кучу..

обновление делается так
Data1.Recordset.Edit
' здесь меняем значения полей
Data1.Recordset.Post

добавление делается так
Data1.Recordset.AddNew
' здесь меняем значения полей
Data1.Recordset.Post
...
Рейтинг: 0 / 0
Как программно добавить данные в базу
    #36558279
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, что вам нужно:

Код: plaintext
1.
2.
Private Sub cmd_Zahis_v_bazu_Click()
    Data1.Recordset.Update
End Sub


остальной код убирайте.
Чтобы добавить новую запись в базу, вам нужно жать стрелочку "вправо" на Data1 до тех пор, пока поля не очистятся (то есть перейдете на новую запись). Потом вводите в поля нужные данные и жмете кнопку cmd_Zahis_v_bazu
...
Рейтинг: 0 / 0
Как программно добавить данные в базу
    #36558285
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GwaKavalergrad,
Data1.Recordset.Post

Нет такого метода у рекордсета, не путайте человека
...
Рейтинг: 0 / 0
Как программно добавить данные в базу
    #36558307
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А теперь немного занудства

KavalergradСоответственно база девственно чиста. В ней есть 5 столбцов.

Во-первых 5 столбцов не в базе, а в таблице
Соответственно, база не девственно чиста, в ней есть таблица.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub Command_Click() 
Data1.Recordset.Update 
Data1.Recordset.Bookmark = Data1.Recordset.LastModified 'сохраняет последнее что было введено в объект 
Data1.Recordset.AddNew 
On Error Resume Next 
MsgBox ("Данные добавлены в Базу данных.") 
End Sub 

Такое впечатление, что вы писали программу снизу вверх
зачем вам строка "On Error Resume Next" перед MsgBox? Почему Update идет раньше, чем AddNew (о чем вам, собственно, и сообщает сообщение об ошибке. Впрочем, все это вам не нужно, как я написал выше.

KavalergradОткрыл базу данны Access-ом и обнаружил, что несмотря на появляющуюся ошибку данные в базе меняютя. Но меняются-то в одной и той же строке. А надо, что бы каждая новая запись шла с новой строки

Это если вы не будете переходить на новую строку (как я написал выше). Будет меняться текущая строка. Заполниите вручную в аксессе таблицу несколькими тестовыми строками, потом запустите свою программу, понажимайте стрелочки вправо-влево на Data1 и поймете, что к чему
...
Рейтинг: 0 / 0
Как программно добавить данные в базу
    #36558309
Gwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProGwaKavalergrad,
Data1.Recordset.Post

Нет такого метода у рекордсета, не путайте человека

Sorry, видимо всё-таки Update..
Но тема-то "Как ПРОГРАММНО добавить данные"
...
Рейтинг: 0 / 0
Как программно добавить данные в базу
    #36558330
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GwaSorry, видимо всё-таки Update..
Но тема-то "Как ПРОГРАММНО добавить данные"

Можно сделать кнопку "новая запись"
Код: plaintext
1.
2.
3.
Private Sub Command1_Click()
  Data1.Recordset.AddNew
End Sub
Жмешь кнопку - появляется новая запись. Пользователь заполнил поля и нажал
Код: plaintext
1.
2.
Private Sub cmd_Zahis_v_bazu_Click()
    Data1.Recordset.Update
End Sub
запись появилась в базе. При этом сохраняется возможность листать записи с помощью Data1

Все это предлагаю решать в рамках предложенной автором структуры (поля, привязанные к контролу Data). Если же необходимо другое - выдадим еще 200 советов.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как программно добавить данные в базу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]