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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2018, 16:59   #1
Rgazarov
 
Регистрация: 14.02.2018
Сообщений: 3
По умолчанию Обновление поля на основании данных из списка

Добрый день!
Не бросайте камнями, пожалуйста, так как с access по нужде сталкиваюсь первый раз.
Понимаю, что тема обсуждалась ни один раз, тем не менее не получается реализовать на конкретном примере. В базе access есть таблица, в которой в нашем случае нам интересны подразделения, даты, суммы, одобренность. Существует форма, на которой есть выпадающий список из подразделений и поле для суммы. Необходимо на основании выбранного в выпадающем списке подразделения обновлять сумму по нему в поле, сумму считать из таблицы.
Выпадающий список через конструктор запросов удалось реализовать быстро. После этого наткнулся на то, что поле через конструктор запросов реализовать нельзя, а только через конструктор выражений, либо я чего-то не понимаю.

Я менял поле на список и описал его через конструктор запросов как

SELECT Sum(SupplierInvoices.[Order Amount in Rubles]) AS [Sum-Order Amount in Rubles], SupplierInvoices.Department
FROM SupplierInvoices
WHERE (((SupplierInvoices.[Order Date])>#1/1/2018#) AND ((SupplierInvoices.[Approval Status])=1))
GROUP BY SupplierInvoices.Department;

Сумма считается верно, но список мне не нужен.
Тогда я вычитал, что здесь единственный вариант это VBA. Пошарился по схожим темам и написал вот что

Private Sub [Total Amount Yeartd]_AfterUpdate()
Dim strSql As String
strSql = "SELECT SupplierInvoices.[Order Amount in Rubles] " & _
" FROM SupplierInvoices " & _
" WHERE ((SupplierInvoices.Department) = '" & Forms!Purchase_Order.Department & "' ) AND ((SupplierInvoices.[Order Date]) > '01.01.2018')
AND ((SupplierInvoices.[Approval Status]) = 1))"
Forms!Purchase_Order.Department = CurrentDb.OpenRecordset(strSql).Fie lds(0)
End Sub


Ошибка определений в выражении FROM.
Помогите, пожалуйста.
Rgazarov вне форума Ответить с цитированием
Старый 15.02.2018, 17:03   #2
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

по крайней мере
[Order Date]) > '01.01.2018')

пишется как
[Order Date]) >#01.01.2018#) ''''' формат даты mm.ll.yyyy
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание

Последний раз редактировалось shanemac51; 15.02.2018 в 17:06.
shanemac51 вне форума Ответить с цитированием
Старый 19.02.2018, 10:30   #3
Rgazarov
 
Регистрация: 14.02.2018
Сообщений: 3
По умолчанию

Поправил формат даты, пишет

Compile Error:
Expected: line number or label or statement or end of statement
Rgazarov вне форума Ответить с цитированием
Старый 19.02.2018, 10:56   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Rgazarov Посмотреть сообщение
Compile Error:
Expected: line number or label or statement or end of statement
Ну так код с ошибками написан

Код:
strSql = "SELECT SupplierInvoices.[Order Amount in Rubles] " & _
    " FROM SupplierInvoices " & _
    " WHERE ((SupplierInvoices.Department) = '" & Forms!Purchase_Order.Department & "' ) " & _
            " AND (SupplierInvoices.[Order Date] > #1/1/2018#) " & _
            " AND (SupplierInvoices.[Approval Status] = 1))"
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 19.02.2018, 11:27   #5
Rgazarov
 
Регистрация: 14.02.2018
Сообщений: 3
По умолчанию

Syntax Error
Никак не хочет(((

Private Sub Total_Amount_Yeartd_AfterUpdate()
Dim strSql As String
strSql = "SELECT SupplierInvoices.[Order Amount in Rubles] " & _
" FROM SupplierInvoices " & _
" WHERE ((SupplierInvoices.Department) = '" & Forms!Purchase_Order.Department & "' ) " & _
" AND (SupplierInvoices.[Order Date] > #1/1/2018#) " & _
" AND (SupplierInvoices.[Approval Status] = 1))"
Forms!Purchase_Order.Department = CurrentDb.OpenRecordset(strSql).Fie lds(0)
End Sub

Выделяет красным Forms!Purchase_Order.Department = CurrentDb.OpenRecordset(strSql).Fie lds(0)
Rgazarov вне форума Ответить с цитированием
Старый 19.02.2018, 14:07   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Rgazarov Посмотреть сообщение
Выделяет красным Forms!Purchase_Order.Department = CurrentDb.OpenRecordset(strSql).Fie lds(0)
Не сильно понятен маневр в Department суму заганять.


Код:
        strSql = "SELECT Sum([Order Amount in Rubles]) AS [Sum-Order Amount in Rubles] " & _
" FROM SupplierInvoices " & _
" WHERE ([Order Date] > #1/1/2018#) " & _
" GROUP BY [Department], [Approval Status] " & _
" HAVING (([Department]='" & Forms!Purchase_Order.Department & "') AND ([Approval Status]=1)); "


    MsgBox CurrentDb.OpenRecordset(strSql).Fields(0)
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 19.02.2018 в 14:26.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчет потерь на основании базы данных в Access Dendy77 Microsoft Office Access 1 10.07.2017 10:01
Создание в ячейке всплывающего списка на основании выделяемого диапазона AndryGrey Microsoft Office Excel 2 07.12.2013 02:11
Форматирование таблицы на основании данных двух первых столбцов blinkheart Microsoft Office Excel 3 10.05.2013 03:31
Создание новой книги, на основании массива данных lecko Microsoft Office Excel 7 07.10.2011 12:09
Обновление списка данных без потери данных в переменных VaBank БД в Delphi 13 03.06.2009 10:47