Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.65/17: Рейтинг темы: голосов - 17, средняя оценка - 4.65
Sunny1004
0 / 0 / 0
Регистрация: 30.04.2011
Сообщений: 12
1

Можно ли полям назначить результат вычисления SQL-запроса?

30.04.2011, 19:12. Просмотров 3116. Ответов 6
Метки нет (Все метки)

Можно ли полям назначить результат вычисления SQL-запроса?
Как в exel...то есть одному полю назначить, например, сумму других?
В пределах одной строки и таблцы хотя бы...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2011, 19:12
Ответы с готовыми решениями:

Можно ли результат sql запроса дописать в таблицу?
подскажите такую вещь....вот есть таблица ...можноли с результат sql запроса дописать в...

Можно ли объединить две одинаковые по полям таблицы в один источник с помощью запроса?
Есть 2 таблицы с почти одинаковым набором полей (в одной есть несколько дополнительных, но они, в...

Результат SQL запроса в переменную
В принципе заголовок Как записать результат выборки SQL запроса в переменную, заведомо известно...

SQL. узнать результат выполнения запроса
Дана реляционная модель базы данных Таблица Customer содержит информацию о клиентах...

Передать результат sql-запроса в переменную
Всем привет. Столкнулся с такой штукой. Вот какому-нить элементу управления я могу присвоить...

6
Deminik
4 / 4 / 0
Регистрация: 15.09.2010
Сообщений: 228
01.05.2011, 07:20 2
Visual Basic
1
Поле.ControlSource = CurrentProject.Connection.Execute('Select fldSumm From MyQuery').GetString
...не уверен что так прокатит... можно тогда и:

Visual Basic
1
2
3
Private Sub lalala()
Поле = CurrentProject.Connection.Execute('Select fldSumm From MyQuery').GetString
End Sub
0
save
2 / 2 / 2
Регистрация: 20.05.2013
Сообщений: 95
02.05.2011, 11:59 3
Полям чего? Таблицч - думаю нет. Во-первых в Access нет тригеров, а во-вторых появляется избыточность информации (а зачем это нужно?). Формы или отчета - да, конечно можно.
0
Ирча
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 345
02.05.2011, 12:54 4
У меня такое чувство, что на самом деле этого не надо, можно обойтись мирными способами.
Может ты сформулируешь, что ты хочешь получить на выходе, и подумаем, каким образом это можно сделать.
А хранить в базе результаты вычислений данных, это денормализация.
0
Sunny1004
0 / 0 / 0
Регистрация: 30.04.2011
Сообщений: 12
02.05.2011, 14:30  [ТС] 5
я согласен что хранить вычисляемые значения в базе это не очень.
Просто если выбирать - делать это запросе при выборке или чтобы
это делалось автоматически, я подумал что можно бы и автоматически.
Тем более что мне постоянно нужно вытаскивать из прайса сумму количеств по одной строке. Я хотел сделать Итого с автовычислением.
Оно а работало бы быстрее.
0
Flaer
07.08.2011, 14:54 6
Тоже присоединяюсь к вопросу!
Есть запрос на выборку, с агрегатными функциями. Т.е. Запрос выдаёт только 3 значения (3 суммы). В запросе 3 условия. Как можно запустить этот запрос и результат присвоить какому либо полю?
Пробовал так:
Visual Basic
1
2
3
4
5
6
7
Dim table As DAO.Recordset
Dim SQL_Query As Variant
SQL_Query = 'SELECT .....'
 
DoCmd.RunSQL SQL_Query
Set table = CurrentDb.OpenRecordset(SQL_Query, dbOpenDynaset)
If Not table.EOF Then Pole1 = table.Fields(0)
Не работает
skan
02.09.2011, 21:14 7
Может, я не понял проблемы, но, насколько я знаю, полю нельзя напрямую присвоить значение SQL-запроса, т.к. SQL-запрос по сути возвращает _набор_значений_ (даже если в этом наборе только 1 запись) а полю можно задать только одно значение.

В случае, если вам необходимо присвоить полю значение, возвращаемое запросом, то лучше поступить следующим образом:
1. Создаете новый модуль
2. Создаете в нем Public Function, которая будет возвращать вам значение из вашего SQL-запроса. (Кстати, функция может быть с параметрами, что расширяет возможность реализации ваших самых буйных фантазий )
3. Полю на форме присваиваете вашу функцию.

Вот пример функции, которая возвращает НДС для указанного продукта
в зависимости от принадлежности его к тому или иному типу.
(Все продукты хранятся в таблице DICT_PRODUCT, каждый продукт принадлежит к тому или иному типу. Все типы хранятся в DICT_ProdType. В последней таблице есть поле [NDS])

Итак,
Аргумент функции - lngID_Product - ид.номер продукта
На выходе имеем значение НДС
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Public Function GetNDS(lngID_Product As Long) As Byte
Dim cnn As ADODB.Connection
Dim strSQL$
Set cnn = CurrentProject.Connection
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
strSQL = 'SELECT DICT_Product.ID_Prod, DICT_Product.ID_ProdType, DICT_ProdType.stNDS FROM DICT_ProdType INNER JOIN DICT_Product ON DICT_ProdType.ID_ProdType = DICT_Product.ID_ProdType WHERE DICT_Product.ID_Prod = ' & lngID_Product & ';'
 
rst.Open strSQL, cnn, adOpenForwardOnly, adLockReadOnly
With rst
If Not .EOF Then 'если переданный аргумент соответствует
                 'существующему продукту, то запрос вернет одну и
                 'только одну запись.
                 'поэтому можно сразу присвоить функции значение 
                 'stNDS из текущей строки рекордсета
GetNDS = !stNDS
Else
MsgBox 'не найден стандартный НДС. Будет использован НДС=0'
GetNDS = 0
End If
End With
End Function
Теперь в форме, имеющей поля txtProductID и txtNDS, для поля txtNDS можно в свойстве 'данные' смело использовать следующую конструкцию:
Visual Basic
1
=GetNDS([txtProductID])
02.09.2011, 21:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2011, 21:14

Как получиль результат SQL запроса?
простейший запрос select * from Table where name='Андрей'т.е. вообще существует такая запись.

можно ли автоматически записать результат запроса в таблицу
ХЕЛП Можно записать результат запроса в таблицу? Есть программа которая работает с базой аксес...

Можно ли обращаться в SQL-конструкциях, помещенных в процедуры VBA, к полям таблицы через переменную?
Добрый день Помогите плз, подскажите, можно ли обращаться в SQL-конструкциях, помещенных в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru