powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Изменение данных в таблице с помощью UPDATE
8 сообщений из 8, страница 1 из 1
Изменение данных в таблице с помощью UPDATE
    #39653835
elenok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется БД Библиотека.Программирую кнопку на добавление новой книги в базу

Не могу написать кусок кода (Пользователь вводит данные о книги и необходимо проверить: если есть книга с такими же параметрами, то в колонке «В наличие» нужно добавить +1, а если нет такой книги, то добавить, как новую в список книг в базу). Чтоб добавить новую книгу я сделала, а кусок кода на добавление такой же книги не работает.
Код: vbnet
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.
39.
40.
41.
Private Sub CommandButton1_Click()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim com, tip As String
Dim name, author, genre, izd, year, t As String
 If cn Is Nothing Then
        Set cn = New ADODB.Connection
        cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Елена\Desktop\27.05\БД_библиотека1.accdb"
        cn.Open
 End If
 
 If rs Is Nothing Then
        Set rs = New ADODB.Recordset
    End If
        
    If rs.State = 1 Then
        rs.Close
    End If
    
    com = "SELECT * FROM Книги WHERE "
    name = rs.Fields(1).Value
    author = rs.Fields(2).Value
    genre = rs.Fields(3).Value
    izd = rs.Fields(4).Value
    year = rs.Fields(5).Value
    t = rs.Fields(6).Value
If (TextBox1.text = name And TextBox2.text = author And ComboBox1.text = genre And TextBox4.text = izd And TextBox5.text = year And ComboBox2.text = t) Then
        com = "UPDATE Книги SET Вналичие=Вналичие + 1"
Else
    
   com = "INSERT INTO Книги (Название,Автор,Жанр,Издательство,ГодИздания,ТипПИ)VALUES ('" & TextBox1.text & "', '" & TextBox2.text & "', '" & ComboBox1.text & "', '" & TextBox4.text & "', '" & TextBox5.text & "', '" & ComboBox2.text & "');"
    rs.Open com, cn
    TextBox1.text = ""
    TextBox2.text = ""
    ComboBox1.text = ""
    TextBox4.text = ""
    TextBox5.text = ""
    ComboBox2.text = ""
End If

End Sub
...
Рейтинг: 0 / 0
Изменение данных в таблице с помощью UPDATE
    #39653884
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elenok,
приложите файл базы данных *.mdb (или accdb)
Код: vbnet
1.
2.
3.
4.
5.
if dcount("*","ИмяТаблицы","название='" & me.название & "' and автор='" & me.автор & "'")>0 then '(если поле число апострофы не нужны)
' Ваши действия если книга этого автора с таким названием уже есть в таблице
Else
' действия если нет
end if
...
Рейтинг: 0 / 0
Изменение данных в таблице с помощью UPDATE
    #39653891
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы совершенно неправильно работаете с Recordset. Поищите любой пример работы. Его нужно открыть с SQL "SELECT * FROM Книги", без всяких where, затем использовать метод Find для поиска нужной записи, отредактировать количество, потом Update. Если не нашли, то добавляем строку с помощью AddNew, опять же редактируем все необходимые поля и Update.
Можно обойтись и без рекодсетов, просто формировать правильные SQL команды INSERT и UPDATE и выполнять их.

Не совсем понятно, зачем используете ADO вместо штатного DAO - в ADO все сложнее.
...
Рейтинг: 0 / 0
Изменение данных в таблице с помощью UPDATE
    #39653898
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku
Код: vbnet
1.
if dcount(


Это ж Эксель, DCount тут не будет работать с внешней базой

Да, и не понятно, зачем использовать Эксель, если есть Акцесс. Код будет похож, а если перейти на формы на базе таблицы, то все будет намного проще.
...
Рейтинг: 0 / 0
Изменение данных в таблице с помощью UPDATE
    #39653913
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elenok http://www.sql.ru/forum/actualfile.aspx?id=21460364] Приложенный файл (БД библиотека1.xlsm - 20Kb) вам не в этт форум
...
Рейтинг: 0 / 0
Изменение данных в таблице с помощью UPDATE
    #39653917
Я бы сделал так:
1. Проверить, заполнены ли все поля;
2. Открыть Recordset на запросе, где в WHERE указаны все условия;
3. Если Recordset пустой - добавить запись, если нет - обновить запись.

Вы же Recordset вообще не открываете, а с "SELECT * FROM Книги WHERE " и не откроете (должно быть WHERE с условиями или без WHERE).
...
Рейтинг: 0 / 0
Изменение данных в таблице с помощью UPDATE
    #39653940
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinЭто ж Эксель, DCount тут не будет работать с внешней базой
Да, и не понятно, зачем использовать Эксель, если есть Акцесс. Код будет похож, а если перейти на формы на базе таблицы, то все будет намного проще.
Пардоньте-был не внимателен.
А чё не сделать так,используя Access,как Вам предлагают (или лень изучать,хотя в Аксе многое решается намного проще чем в Ёкселе)
...
Рейтинг: 0 / 0
Изменение данных в таблице с помощью UPDATE
    #39653979
bubucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как все очень сложно...
Собрали скуль "INSERT INTO Книги... " , выполнили , проанализировали ошибку... не?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Изменение данных в таблице с помощью UPDATE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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