Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
13 / 13 / 0
Регистрация: 16.11.2015
Сообщений: 18

Добавление записи в БД Access

05.06.2017, 22:33. Показов 5352. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как написать правильно добавление, редактирование и удаление записей?
Такая ошибка.


VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Public Class Main
    Dim Con As OleDb.OleDbConnection                                        ' Переменная для подключения базы
    Dim BD As OleDb.OleDbCommand
    Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'TODO: данная строка кода позволяет загрузить данные в таблицу "_Tovar_DataSet2.TOVAR". При необходимости она может быть перемещена или удалена.
        Me.TOVARTableAdapter3.Fill(Me._Tovar_DataSet2.TOVAR)
        'TODO: данная строка кода позволяет загрузить данные в таблицу "TovDS.TOVAR". При необходимости она может быть перемещена или удалена.
        Me.TOVARTableAdapter2.Fill(Me.TovDS.TOVAR)
    End Sub
 
    Private Sub ExitBtn_Click(sender As Object, e As EventArgs) Handles ExitBtn.Click
        Me.Close()                                                          ' Закрываем программу
        Otchet.Close()
        Mainmenu.Close()
    End Sub
 
    Private Sub AddBtn_Click(sender As Object, e As EventArgs) Handles AddBtn.Click
        BD = New OleDb.OleDbCommand("INSERT INTO [TOVAR] ([Наименование], [Количество], [Срок годности], [Код производителя], [Дата производства], [Дата поступления], [Сотрудник]) 
VALUES (Txt1.Text, Txt2.Text, Txt7.Text, Txt3.Text, Txt5.Text, Txt6.Text, Txt4.Text )", Con)
        Con.Open()
        BD.ExecuteNonQuery()
        Con.Close()
    End Sub
 
    Private Sub RedBtn_Click(sender As Object, e As EventArgs) Handles RedBtn.Click
 
    End Sub
 
    Private Sub DelBtn_Click(sender As Object, e As EventArgs) Handles DelBtn.Click
 
    End Sub
 
    Private Sub BtnBack_Click(sender As Object, e As EventArgs) Handles BtnBack.Click
        Mainmenu.Show()
        Me.Close()
    End Sub
 
End Class
Tovar+.rar
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2017, 22:33
Ответы с готовыми решениями:

Добавление записи в БД Access
Есть 1 форма в ней стоит DataGridView и подключена база данных на Access . По нажатию на пункт MenuStrip вызывается форма 2 в которой...

Datagridview добавление новой записи в бд access
на форме datagridvew, кнопки(Добавить запись/удалить/редактировать/сохранить) и 4 текстовых поля. подключил таблицу бд вот так: ...

Добавление записи в БД Access
Здравствуйте. Имеется БД Access со связями показанными на рисунке. Программа добавляет при помощи методов Insert и Post данные о жителе,...

9
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
06.06.2017, 08:04
В Main_Load добавь строку, указав свой файл данных и путь:
VB.NET
1
Dim Con As New OleDb.OleDbConnection("PROVIDER = Microsoft.Jet.OLEDB.4.0; DATA SOURCE =" & Application.StartupPath & "\Tovar.mdb")
Или просто замени этой строкой свою строку №2.
0
13 / 13 / 0
Регистрация: 16.11.2015
Сообщений: 18
07.06.2017, 22:17  [ТС]
Получилось вот так.
VB.NET
1
2
3
4
5
6
7
Private Sub AddBtn_Click(sender As Object, e As EventArgs) Handles AddBtn.Click
        Con.Open()
        BD = New OleDb.OleDbCommand("INSERT INTO [TOVAR] ([Наименование], [Количество], [Срок годности], [Код производителя], [Дата производства], [Дата поступления], [Код сотрудника])VALUES ('" & Txt1.Text & "', '" & Txt2.Text & "', '" & Txt7.Text & "', '" & Txt3.Text & "', '" & Txt5.Text & "', '" & Txt6.Text & "', '" & Txt4.Text & "' )", Con)
        BD.ExecuteNonQuery()
        Con.Close()
        Me.TOVARTableAdapter3.Fill(Me._Tovar_DataSet2.TOVAR)
    End Sub
А в main писал вот так.
VB.NET
1
2
    Dim Con As New OleDb.OleDbConnection("PROVIDER = Microsoft.ACE.OLEDB.12.0; DATA SOURCE =" & Application.StartupPath & "\Tovar+.accdb")                ' Переменная для подключения базы
    Dim BD As OleDb.OleDbCommand
А вот редактирование
VB.NET
1
2
3
4
5
6
7
Private Sub RedBtn_Click(sender As Object, e As EventArgs) Handles RedBtn.Click
        Con.Open()
        BD = New OleDb.OleDbCommand("UPDATE [TOVAR] SET [Количество]='" & Txt2.Text & "' WHERE (Код = 'DBGrid.CurrentRow' )", Con)
        BD.ExecuteNonQuery()
        Con.Close()
        Me.TOVARTableAdapter3.Fill(Me._Tovar_DataSet2.TOVAR)
    End Sub
и удаление
VB.NET
1
2
3
4
5
6
7
Private Sub DelBtn_Click(sender As Object, e As EventArgs) Handles DelBtn.Click
        Con.Open()
        BD = New OleDb.OleDbCommand("DELETE FROM [TOVAR] WHERE (Код = 'DBGrid.CurrentRow' )", Con)
        BD.ExecuteNonQuery()
        Con.Close()
        Me.TOVARTableAdapter3.Fill(Me._Tovar_DataSet2.TOVAR)
    End Sub
не получаются.
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
08.06.2017, 08:19
VB.NET
1
WHERE (Код = 'DBGrid.CurrentRow' )"
замени на
VB.NET
1
WHERE (Код = '" & DBGrid.CurrentRow.Cells(3).Value & "' )"
Cells(3) - номер колонки DBGrid, в которой отображается "Код".
1
13 / 13 / 0
Регистрация: 16.11.2015
Сообщений: 18
08.06.2017, 10:44  [ТС]
Наверное нужно уточнить, что это visual studio basic 2017. Может там какие-то мелкие изменения в синтаксисе.
Все темы, которые находил - неправильные.

Добавлено через 9 минут
VB.NET
1
WHERE (Код товара = '" & DBGrid.CurrentRow.Cells(0).Value & "')"
Тут только такая ошибка.
System.Data.OleDb.OleDbException: "Ошибка синтаксиса (пропущен оператор) в выражении запроса '(Код товара = '26')'."
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
08.06.2017, 13:25
Код товара - это название поля?
0
13 / 13 / 0
Регистрация: 16.11.2015
Сообщений: 18
08.06.2017, 14:16  [ТС]
Да. Я и так пробовал, и просто "Код" писать.
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
08.06.2017, 19:13
Лучший ответ Сообщение было отмечено Mihatron как решение

Решение

Нужно определиться, как называется поле таблицы в базе данных - "Код" или "Код товара" и записать его [Код товара]
А также, если формат поля числовой, а не текстовый, то указывать без кавычек:
VB.NET
1
WHERE ([Код товара] = " & DBGrid.CurrentRow.Cells(0).Value & ")"
1
13 / 13 / 0
Регистрация: 16.11.2015
Сообщений: 18
08.06.2017, 20:08  [ТС]
Спасибо большое, очень помог.
Можно последний вопрос.
Как сделать, чтобы сохранялись изменения в базе данных?
Закрываю прогу, открываю, изменения не сохранились.
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
09.06.2017, 08:16
Вобщем-то, BD.ExecuteNonQuery() записывает изменения в БД.
Если не записываются операции UPDATE или DELETE, значит не выполняется условие WHERE ([Код товара] = ...
Если даже без условий не сохраняется операция INSERT, видимо, нужно пересмотреть структуру БД, соответствие типов данных - например, в текстовые поля передавать значения с кавычками, в числовые - без кавычек.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2017, 08:16
Помогаю со студенческими работами здесь

Добавление записи в Access
У меня есть таблица с полями (id, фамилия, имя, отчество). Как написать запрос добавления с новой записи со следующим по порядку id? ...

Добавление записи в БД Access
Здравия всем... Есть база созданная в MS Access 2013 пытаюсь программно добавить новую запись, но почему-то получаю эксепшен!?...

Добавление записи в БД Access
В общем надо добавить запись в базу Access, пока в один столбец, что-то никак не могу разобраться, вот код, выдает ошибку в строке...

Добавление записи в БД Access
public partial class Form3 : Form { public OleDbConnection Подключение;} public Form3() { ...

Добавление новой записи в БД (access)
Привет, есть DBGrid в которой отображаются данные с бд нужно создать новую запись в таблице, но проблема в том, что если создавать через...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru