2017-01-26 17 views
0

Я играю с доступом и vba. Я struggleing обновлять и сгруппировать строки из tblLoadingListItems в tblLoadSummary с помощью запроса нижеUpdate Query Access 2007 Group в одну строку

UPDATE tblLoadSummary INNER JOIN tblLoadingListItems ON (tblLoadSummary.salesno = tblLoadingListItems.salesno) AND (tblLoadSummary.loadnolink = tblLoadingListItems.loadnolink) SET tblLoadSummary.[Cust O/N] = [tblLoadingListItems].[Cust O/N], tblLoadSummary.traderid = [tblLoadingListItems].[traderid], tblLoadSummary.street = [tblLoadingListItems].[street], tblLoadSummary.[zone] = [tblLoadingListItems].[zone], tblLoadSummary.salesno = [tblLoadingListItems].[salesno], tblLoadSummary.[Customer Ref] = [tblLoadingListItems].[Customer Ref], tblLoadSummary.DeliveryAddress = [tblLoadingListItems].[DeliveryAddress], tblLoadSummary.Postcode = [tblLoadingListItems].[Postcode], tblLoadSummary.SumOfnoofpacks = Sum([tblLoadingListItems].[packs1]), tblLoadSummary.SumOfnoofboxes = Sum([tblLoadingListItems].[noofboxes]), tblLoadSummary.contact = [tblLoadingListItems].[contact], tblLoadSummary.telephone = [tblLoadingListItems].[telephone], tblLoadSummary.fax = [tblLoadingListItems].[fax], tblLoadSummary.email = 
[tblLoadingListItems].[email], tblLoadSummary.deliverycontact = [tblLoadingListItems].[deliverycontact], tblLoadSummary.deliverytelephone = [tblLoadingListItems].[deliverytelephone], tblLoadSummary.deliveryfax = [tblLoadingListItems].[deliveryfax], tblLoadSummary.deliveryemail = [tblLoadingListItems].[deliveryemail], tblLoadSummary.acknowaddress = [tblLoadingListItems].[acknowaddress] 

WHERE (((tblLoadSummary.salesno)="SM-100118") AND ((tblLoadSummary.loadnolink)=32232)) 

Если я показать представление таблицы данных я получаю две строки, возвращаемые, Im пытаясь сгруппировать эти строки в одну. Когда я пытаюсь добавить GROUP BY после WHERE, я получаю синтаксические ошибки, отсутствующие операторы для всех моих полей.

Можете ли вы кого-нибудь указать мне в правильном направлении?

+0

, что это ошибка? Я не знаком с доступом, но я не думаю, что вы не можете обновить набор соединений в таблице ... его таблица набора обновлений ... join ... – Moudiz

+0

Невозможно добавить Group By в запрос обновления. Агрегирование запросов всегда доступно только для чтения. – Gustav

+0

Итак, если таблица a имеет 2 строки дубликатов (bar 1 qty field), я не могу обновить одну строку в таблице b с существующей информацией + сумма qty? – Bunion

ответ

1

Я не уверен, что с доступом, но начиная обновление, как это и, может быть, его неправильно:

Update tblLoadSummary inner join... 

попробовать, как этот

update t set .... from tblLoadSummary t inner join tblLoadSummary s on ... 

это полный запрос,

UPDATE t-- tblLoadSummary 
    SET t.CustO/N = s.CustO/N, 
     t.traderid   = s.traderid, 
     t.street   = s.street, 
     t.zone = s.zone, 
     t.salesno   = s.salesno, 
     t.CustomerRef = s.Customer Ref, 
     t.DeliveryAddress = s.DeliveryAddress, 
     t.Postcode   = s.Postcode, 
     t.SumOfnoofpacks = Sum(s.packs1), 
     t.SumOfnoofboxes = Sum(s.noofboxes), 
     t.contact   = s.contact, 
     t.telephone   = s.telephone, 
     t.fax    = s.fax, 
     t.email    = s.email, 
     t.deliverycontact = s.deliverycontact, 
     t.deliverytelephone = s.deliverytelephone, 
     t.deliveryfax  = s.deliveryfax, 
     t.deliveryemail  = s.deliveryemail, 
     t.acknowaddress  = s.acknowaddress 
from tblLoadSummary as t 
INNER JOIN tblLoadingListItems as s ON 
(t.salesno = s.salesno) AND (t.loadnolink = s.loadnolink) 
WHERE (((t.salesno) = "SM-100118") AND 
     ((t.loadnolink) = 32232)) 

 Смежные вопросы

  • Нет связанных вопросов^_^