Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как программно добавить данные в базу
|
|||
|---|---|---|---|
|
#18+
Учусь программировать в 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-ом и обнаружил, что несмотря на появляющуюся ошибку данные в базе меняютя. Но меняются-то в одной и той же строке. А надо, что бы каждая новая запись шла с новой строки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2010, 16:02 |
|
||
|
Как программно добавить данные в базу
|
|||
|---|---|---|---|
|
#18+
Kavalergrad, Вы мешаете всё в одну кучу.. обновление делается так Data1.Recordset.Edit ' здесь меняем значения полей Data1.Recordset.Post добавление делается так Data1.Recordset.AddNew ' здесь меняем значения полей Data1.Recordset.Post ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2010, 16:08 |
|
||
|
Как программно добавить данные в базу
|
|||
|---|---|---|---|
|
#18+
Все, что вам нужно: Код: plaintext 1. 2. остальной код убирайте. Чтобы добавить новую запись в базу, вам нужно жать стрелочку "вправо" на Data1 до тех пор, пока поля не очистятся (то есть перейдете на новую запись). Потом вводите в поля нужные данные и жмете кнопку cmd_Zahis_v_bazu ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2010, 16:16 |
|
||
|
Как программно добавить данные в базу
|
|||
|---|---|---|---|
|
#18+
GwaKavalergrad, Data1.Recordset.Post Нет такого метода у рекордсета, не путайте человека ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2010, 16:17 |
|
||
|
Как программно добавить данные в базу
|
|||
|---|---|---|---|
|
#18+
А теперь немного занудства KavalergradСоответственно база девственно чиста. В ней есть 5 столбцов. Во-первых 5 столбцов не в базе, а в таблице Соответственно, база не девственно чиста, в ней есть таблица. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Такое впечатление, что вы писали программу снизу вверх зачем вам строка "On Error Resume Next" перед MsgBox? Почему Update идет раньше, чем AddNew (о чем вам, собственно, и сообщает сообщение об ошибке. Впрочем, все это вам не нужно, как я написал выше. KavalergradОткрыл базу данны Access-ом и обнаружил, что несмотря на появляющуюся ошибку данные в базе меняютя. Но меняются-то в одной и той же строке. А надо, что бы каждая новая запись шла с новой строки Это если вы не будете переходить на новую строку (как я написал выше). Будет меняться текущая строка. Заполниите вручную в аксессе таблицу несколькими тестовыми строками, потом запустите свою программу, понажимайте стрелочки вправо-влево на Data1 и поймете, что к чему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2010, 16:23 |
|
||
|
Как программно добавить данные в базу
|
|||
|---|---|---|---|
|
#18+
Shocker.ProGwaKavalergrad, Data1.Recordset.Post Нет такого метода у рекордсета, не путайте человека Sorry, видимо всё-таки Update.. Но тема-то "Как ПРОГРАММНО добавить данные" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2010, 16:23 |
|
||
|
Как программно добавить данные в базу
|
|||
|---|---|---|---|
|
#18+
GwaSorry, видимо всё-таки Update.. Но тема-то "Как ПРОГРАММНО добавить данные" Можно сделать кнопку "новая запись" Код: plaintext 1. 2. 3. Код: plaintext 1. 2. Все это предлагаю решать в рамках предложенной автором структуры (поля, привязанные к контролу Data). Если же необходимо другое - выдадим еще 200 советов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2010, 16:31 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=133&tid=2159983]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
21ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 264ms |
| total: | 443ms |

| 0 / 0 |
