Recordset.AddNew не работает (VB->ADO->Access)

Узнай цену своей работы

Формулировка задачи:

Код:
Листинг программы
  1. Dim cnnAccess As New ADODB.Connection
  2. Dim rst As New ADODB.Recordset
  3. Dim strSQL As String
  4. Dim GetIdProduct As Long
  5. Dim Id_Customer As Long
  6. Dim Articul As Long
  7. Id_Customer = 81
  8. Articul = 43144
  9. cnnAccess.Open 'Provider=Microsoft.Jet.OLEDB.4.0;' & _
  10. 'Data Source=\ServDData.mdb;'
  11. strSQL = 'SELECT Id_Product FROM Products' & _
  12. ' WHERE ID_Customer = ' & Id_Customer & _
  13. ' AND ID_Articul = ' & Articul
  14. With rst
  15. .ActiveConnection = cnnAccess
  16. .CursorLocation = adUseServer
  17. .CursorType = adOpenKeyset
  18. .LockType = adLockOptimistic
  19. .Source = strSQL
  20. .Open
  21. End With
  22. Set rst = cnnAccess.Execute(strSQL)
  23. If rst.RecordCount > 0 Then
  24. GetIdProduct = rst!Id_Customer
  25. Else
  26. rst.AddNew
  27. GetIdProduct = rst!Id_Product
  28. rst!Id_Customer = 81
  29. rst!Name = 'Name'
  30. rst!ID_Articul = 43144
  31. rst.Update
  32. End If
Как бы CursorLocation и CursorType не менял - всегда rst.RecordCount = -1 (даже если товар такой есть) А на AddNew выдает ошибку: Run-time error '3251': Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.

Решение задачи: «Recordset.AddNew не работает (VB->ADO->Access)»

textual
Листинг программы
  1. Set rst = cnnAccess.Execute(strSQL)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы