У меня есть база данных MS Access (2016), использующая связанные таблицы с базой данных MySQL. В базе данных доступа у меня есть форма, которую я использую для ввода данных. Мне нужно было пересчитывать определенные поля (вручную), когда я нажимаю кнопку Recal c.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я запускаю код VBA для обновления полей в форме, если я затем попробую для перехода к другой записи я получаю сообщение об ошибке «Эта запись была изменена другим пользователем с тех пор, как вы начали ее редактировать…»
Я единственный пользователь, имеющий доступ к этой базе данных. Все работает нормально, если я НЕ обновляю связанное поле в форме. Как только я это сделаю, я получаю эту ошибку при переходе к следующей записи.
Вот мой код vba для кнопки Recal c:
Private Sub Recalculate()
vendorID = Me.product_supplier_id
supplierID = "supplier_id=" & vendorID
supplierHandling = Me.product_handling
vendorFee = Me.product_vendor_fee
supplierMarkupPercent = DLookup("supplier_markup_percent", "suppliers", supplierID)
supplierMarkupFixed = DLookup("supplier_markup_fixed", "suppliers", supplierID)
productCost = Me.product_cost
productShipping = Me.product_shipping
totalCost = productCost + productShipping + supplierHandling
totalCost = totalCost + vendorFee
markup = supplierMarkupFixed + (totalCost * supplierMarkupPercent)
productPrice = (totalCost + markup) / 0.85
amzFee = productPrice * 0.15
totalCost = totalCost + amzFee
profit = productPrice - totalCost
Me.product_total_cost = totalCost
Me.product_price = productPrice
Me.product_profit = profit
SetPriceColor
End Sub
3 оператора в конце (до SetPriceColor) виноваты.
Я не знаю, как решить эту проблему. Я просмотрел множество поисков в Google, но ничего не подсказывает мне решение для этого конкретного случая c.