Как я могу вычесть количество из запаса? [VB6]
Мне нужно вычесть количество из таблицы, сопоставив идентификатор продукта. Если я запускаю приведенный ниже код, он вычитает некоторое количество, но проблема, например, заключается в следующем... Я ввожу идентификационный номер как 1 и должен дважды нажать кнопку вычесть, чтобы вычесть. Во второй раз я меняю идентификационный номер на 2 и нажимаю кнопку вычесть... В первый раз он вычитает из самого идентификатора номер 1. Но теперь, если я нажму еще раз, он вычтет из идентификатора номер 2. Как я могу решить эту проблему? Я использую MS Access в качестве базы данных(ADODB).
Option Explicit Dim con As New ADODB.Connection Dim rst As ADODB.Recordset Dim sql As String Private Sub Command1_Click() Set con = New ADODB.Connection Set rst = New ADODB.Recordset con.Open (adodc1.ConnectionString) sql = "UPDATE stock SET QTY = QTY - 1 WHERE ID = '" & IDval.Text & "'" con.Execute (sql) Adodc1.Recordset.Update Adodc1.Refresh con.Close End Sub
Заранее спасибо
NewPast
А ты пробовал:
"Обновить набор акций QTY = (QTY - 1) WHERE (ID = '" & IDval.Текст & "')"
Maciej Los
Непонятный. Пожалуйста, будьте более конкретны и предоставьте более подробную информацию (примерные данные).
[no name]
Вы говорите "идентификационный номер", если считаете, что идентификатор-это число, но используете его в своем запросе, как если бы это была строка.
Maciej Los
Хорошая мысль!
Richard Deeming
Ваш код восприимчив к SQL-инъекция[^].
Параметризованные запросы не так просты с ADODB, как с .NET, но они все еще не особенно сложны:
Как вызвать параметризованный запрос ADO с помощью VBA/C++/Java[^]