Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / запрос на обновление / 10 сообщений из 10, страница 1 из 1
16.09.2019, 14:03
    #39862294
jeanssp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос на обновление
Здравствуйте! Почему этот код не работает? Я хочу обновить таблицу . К сумме добавить новую сумму. Данные хочу взять из полей ленточной формы. Пишет введите значение параметра (и мои переменные). Ставлю точку останова, значения переменных правильные, то есть код поля читает. Но почему то не работает.


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Form_AfterUpdate()
Dim SQL As String
Dim deb_acc_id As Integer
Dim sum As Currency
deb_acc_id = Me.DtAccID.Value
sum = Me.Summa.Value
SQL = "UPDATE tblAccounts Set Debet = Debet + sum WHERE (tblAccounts.ID) = deb_acc_id"
DoCmd.RunSQL SQL
End Sub
...
Рейтинг: 0 / 0
16.09.2019, 14:08
    #39862300
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос на обновление
jeanssp
Патамучта.....Переменную SQL перед docmd в отладчике посмотрите - все сразу поймете.....
...
Рейтинг: 0 / 0
16.09.2019, 14:24
    #39862317
jeanssp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос на обновление
Serg197311, не понимаю. В переменной моя строка. Ну и что?
...
Рейтинг: 0 / 0
16.09.2019, 14:32
    #39862323
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос на обновление
VBA не будет подставлять значения переменных в литерал - это не PHP. И квотить их не будет.
...
Рейтинг: 0 / 0
16.09.2019, 14:38
    #39862330
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос на обновление
jeansspSerg197311, не понимаю. В переменной моя строка. Ну и что?
SUM там не цифра, а стринг "SUM". А SQL не знает, чо это да как. Вот и считает что это параметр и спрашивает его.
...
Рейтинг: 0 / 0
16.09.2019, 15:36
    #39862367
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос на обновление
А Вы почитайте соглашение про имена переменных и ответьте на вопрос можно ли её обозвать SUM ?
да и запрос должен быть:
Код: vbnet
1.
2.
peremen=me.debet + что-то
CurrentDB.Execute "UPDATE tblAccounts Set Debet =" & peremen & " WHERE tblAccounts.ID =" & deb_acc_id
...
Рейтинг: 0 / 0
16.09.2019, 15:41
    #39862372
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос на обновление
jeansspSerg197311, не понимаю. В переменной моя строка. Ну и что?а Debet какого типа?
...
Рейтинг: 0 / 0
16.09.2019, 16:05
    #39862392
jeanssp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос на обновление
sdku, Debet - денежный
...
Рейтинг: 0 / 0
16.09.2019, 16:17
    #39862404
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос на обновление
jeanssp,
ну и формируйте строку-текст запроса как предложено (конкатенацией "&")
Все должно заработать
...
Рейтинг: 0 / 0
16.09.2019, 17:04
    #39862443
запрос на обновление
Код: vbnet
1.
2.
3.
sum = Me.Summa.Value
SQL = "UPDATE tblAccounts Set Debet = Debet +" & Str(sum) & " WHERE (tblAccounts.ID) = deb_acc_id"
DoCmd.RunSQL SQL

В запросе десятичный разделитель всегда ".". Функция Str это делает.
А вообще для редактирования одной или небольшого кол-ва записей лучше открыть Recordset и изменить запись там.
Да и применение DoCmd.RunSQL - не лучшее решение.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / запрос на обновление / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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