Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2013, 17:49   #1
Кротяка
Пользователь
 
Аватар для Кротяка
 
Регистрация: 04.02.2011
Сообщений: 27
Восклицание Вычилсяемое поле

Помогите создать вычисляемое поле в таблице (Зарплата.Зарплата), которое будет считать сумму трёх полей (Зарплата.[Зарплата гарантированная] + Зарплата.[Зарплата дополнительная] + Зарплата.Премиальные). Предполагаю, что тут нужен VBA... пытался что то написать - результата нет....
Код:
Private Sub Зарплата_BeforeUpdate(Cancel As Integer)
Dim sql As String
Dim Rs As Recordset
Dim DBS As Database
sql = "SELECT Зарплата.[Зарплата гарантированная] + Зарплата.[Зарплата дполнительная] + Зарплата.Премиальные As Зарплата FROM Зарплата"
Set Rs = DBS.OpenRecordset(sql)
Me.opl = Rs(0)
End Sub

Последний раз редактировалось Кротяка; 08.06.2013 в 17:59.
Кротяка вне форума Ответить с цитированием
Старый 08.06.2013, 18:58   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

select - выбирает значение!
Вам же нужно ОБНОВЛЯТЬ значение поля (см. в сторону Update)
а вообще, поле, которое является вычисляемым в 99.9% случаев в БД хранить НЕ НУЖНО!!!!

Ведь когда Вы будете получать поля из таблицы запросом, вот там и посчитаете нужное значение!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.06.2013, 19:51   #3
Кротяка
Пользователь
 
Аватар для Кротяка
 
Регистрация: 04.02.2011
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
select - выбирает значение!
Вам же нужно ОБНОВЛЯТЬ значение поля (см. в сторону Update)
а вообще, поле, которое является вычисляемым в 99.9% случаев в БД хранить НЕ НУЖНО!!!!

Ведь когда Вы будете получать поля из таблицы запросом, вот там и посчитаете нужное значение!!
это как раз тот редкий случай, когда его нужно хранить. Просто я использую базу Access для C++ Builder , поэтому мне необходимо, чтобы это поле там отображалось
что то я не пойму, как именно нужно обновить

Последний раз редактировалось Кротяка; 08.06.2013 в 20:00.
Кротяка вне форума Ответить с цитированием
Старый 09.06.2013, 00:26   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Просто я использую базу Access для C++ Builder , поэтому мне необходимо, чтобы это поле там отображалось
Добавьте вычисляемое поле в запрос, будет отображаться. Хранить его незачем.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.06.2013, 03:18   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Кротяка.
"..не пойму, как именно нужно обновить.." - заполнить все результирующие поля (ЗарплатаПоле) данными из трёх полей в MS Access
можно без обращеия к рекордсету, достаточно просто выполнить запрос на обновление, можно VBA кодом:
Код:
Const sQ = "UPDATE Зарплата SET ЗарплатаПоле = Nz([Зарплата гарантированная], 0) + Nz([Зарплата дполнительная], 0) + Nz(Премиальные, 0) "
Dim DBS As Database
Set DBS = CurrentDB
DBS.Execute(sQ)
Но смысла в этой операции нет, ибо она накапливает в таблице избыточные данные, которые можно в любой момент
получить выполнив простую математическую операцию.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
бъет ли ферзь, установленный в поле (k, l) поле (m, n). Antua Помощь студентам 5 24.03.2012 12:03
Как из простого мемо записать в поле БД Access в поле тоже типа мемо с сохранением всех абзацев пробелов Speeker БД в Delphi 2 28.11.2011 16:22
Уникальное поле и поле счетчик в IBexpert Ist Помощь студентам 4 28.05.2011 09:14
Значения в поле подстановок зависят от значения в другом поле pyhtelka Microsoft Office Access 4 13.06.2010 10:42
После ввода в поле по Enter нужно перейти на другое поле! •ScReam•™ Помощь студентам 2 16.06.2009 08:47