Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запрос с конструктора
 
 автор: debilder   (19.11.2007 в 20:22)   личное сообщение
 
 

Помогите!!! Не работает запрос:

'CurrentDb.Execute ("UPDATE 'C:\ZAKACHKA_EMI\EXPORT\VAT\DATA_NAK177.MDB'.CORP_OU1 INNER JOIN help_corp_ou1 ON (help_corp_ou1.ZVIT_GOD = CORP_OU1.ZVIT_GOD) AND (help_corp_ou1.E_EDRPOU = CORP_OU1.E_EDRPOU) SET CORP_OU1.OUP_Q29S = [help_CORP_OU1].[OUP_Q29S], CORP_OU1.OUP_Q29P = [help_CORP_OU1].[OUP_Q29P], CORP_OU1.OUP_Q29F = [help_CORP_OU1].[OUP_Q29F], CORP_OU1.OUP_Q29G = [help_CORP_OU1].[OUP_Q29G], CORP_OU1.OUP_Q29O = [help_CORP_OU1].[OUP_Q29O], CORP_OU1.OUP_Q29H = [help_CORP_OU1].[OUP_Q29H], CORP_OU1.OUP_Q29R = [help_CORP_OU1].[OUP_Q29R], CORP_OU1.OUP_Q29K = [help_CORP_OU1].[OUP_Q29K], CORP_OU1.OUP_Q29V = [help_CORP_OU1].[OUP_Q29V], CORP_OU1.OUP_Q29T = [help_CORP_OU1].[OUP_Q29T], CORP_OU1.OUP_Q29M = [help_CORP_OU1].[OUP_Q29M], CORP_OU1.OUP_Q29A = [help_CORP_OU1].[OUP_Q29A]," _
'& "CORP_OU1.OUP_Q29D = [help_CORP_OU1].[OUP_Q29D], CORP_OU1.OUP_Q29U = [help_CORP_OU1].[OUP_Q29U], CORP_OU1.OUP_Q29Z = [help_CORP_OU1].[OUP_Q29Z], CORP_OU1.OUP_Q30S = [help_CORP_OU1].[OUP_Q30S], CORP_OU1.OUP_Q30P = [help_CORP_OU1].[OUP_Q30P], CORP_OU1.OUP_Q30F =[help_CORP_OU1].[OUP_Q30F] , CORP_OU1.OUP_Q30G = [help_CORP_OU1].[OUP_Q30G], CORP_OU1.OUP_Q30O = [help_CORP_OU1].[OUP_Q30O], CORP_OU1.OUP_Q30H = [help_CORP_OU1].[OUP_Q30H], CORP_OU1.OUP_Q30R = [help_CORP_OU1].[OUP_Q30R], CORP_OU1.OUP_Q30K = [help_CORP_OU1].[OUP_Q30K], CORP_OU1.OUP_Q30V = [help_CORP_OU1].[OUP_Q30V], CORP_OU1.OUP_Q30T = [help_CORP_OU1].[OUP_Q30T], CORP_OU1.OUP_Q30M = [help_CORP_OU1].[OUP_Q30M], CORP_OU1.OUP_Q30A = [help_CORP_OU1].[OUP_Q30A], CORP_OU1.OUP_Q30D = [help_CORP_OU1].[OUP_Q30D]," _
'& "CORP_OU1.OUP_Q30U = [help_CORP_OU1].[OUP_Q30U], CORP_OU1.OUP_Q30Z = [help_CORP_OU1].[OUP_Q30Z], CORP_OU1.OUP_Q31S = [help_CORP_OU1].[OUP_Q31S], CORP_OU1.OUP_Q31P = [help_CORP_OU1].[OUP_Q31P], CORP_OU1.OUP_Q31F = [help_CORP_OU1].[OUP_Q31F],CORP_OU1.OUP_Q31G = [help_CORP_OU1].[OUP_Q31G], CORP_OU1.OUP_Q31O = [help_CORP_OU1].[OUP_Q31O], CORP_OU1.OUP_Q31H = [help_CORP_OU1].[OUP_Q31H], CORP_OU1.OUP_Q31R = [help_CORP_OU1].[OUP_Q31R], CORP_OU1.OUP_Q31K = [help_CORP_OU1].[OUP_Q31K], CORP_OU1.OUP_Q31V = [help_CORP_OU1].[OUP_Q31V] , CORP_OU1.OUP_Q31T = [help_CORP_OU1].[OUP_Q31T], CORP_OU1.OUP_Q31M = [help_CORP_OU1].[OUP_Q31M], CORP_OU1.OUP_Q31A = [help_CORP_OU1].[OUP_Q31A], CORP_OU1.OUP_Q31D = [help_CORP_OU1].[OUP_Q31D], CORP_OU1.OUP_Q31U = [help_CORP_OU1].[OUP_Q31U]," _
'& "CORP_OU1.OUP_Q31Z = [help_CORP_OU1].[OUP_Q31Z], CORP_OU1.OUP_Q32S = [help_CORP_OU1].[OUP_Q32S], CORP_OU1.OUP_Q32P = [help_CORP_OU1].[OUP_Q32P],CORP_OU1.OUP_Q32F = [help_CORP_OU1].[OUP_Q32F], CORP_OU1.OUP_Q32G = [help_CORP_OU1].[OUP_Q32G], CORP_OU1.OUP_Q32O = [help_CORP_OU1].[OUP_Q32O],CORP_OU1.OUP_Q32H = [help_CORP_OU1].[OUP_Q32H], CORP_OU1.OUP_Q32R = [help_CORP_OU1].[OUP_Q32R], CORP_OU1.OUP_Q32K = [help_CORP_OU1].[OUP_Q32K], CORP_OU1.OUP_Q32V = [help_CORP_OU1].[OUP_Q32V],CORP_OU1.OUP_Q32T = [help_CORP_OU1].[OUP_Q32T], CORP_OU1.OUP_Q32M = [help_CORP_OU1].[OUP_Q32M], CORP_OU1.OUP_Q32A = [help_CORP_OU1].[OUP_Q32A], CORP_OU1.OUP_Q32D = [help_CORP_OU1].[OUP_Q32D], CORP_OU1.OUP_Q32U = [help_CORP_OU1].[OUP_Q32U],CORP_OU1.OUP_Q32Z = [help_CORP_OU1].[OUP_Q32Z]," _
'& "CRP_OU1.OUP_Q33 = [help_CORP_OU1].[OOUP_Q33], CORP_OU1.OUP_Q34 = [help_CORP_OU1].[OUP_Q34], CORP_OU1.reg_number = [help_CORP_OU1].[reg_number], CORP_OU1.region = [help_CORP_OU1].[region];" _
'& "WHERE (((help_corp_ou1.E_EDRPOU)=2006));")

  Ответить  
 
 автор: Волчок©   (19.11.2007 в 20:43)   личное сообщение
 
 

На что ругается?...
вообще заремлен странно...
Можно было заремить только первую строку.. ' перед & вроде как и не был бы нужен...
вообще, привычнее видеть перенос
" & _

  Ответить  
 
 автор: osmor   (19.11.2007 в 20:48)   личное сообщение
 
 

И мне тоже помогите, у меня тоже не работает

SELECT tblWayBill.WayBillNum AS WayBillNum, tblWayBill.WayBillDate AS WayBillDate, 'DTS' AS Imj_post, '3267' AS K_fpst, 0 AS Tarif_pr,
0 AS Ndc_tf, 0 AS Stm_proch,
(SELECT COUNT('*')
FROM tblWayBillDetail wbN
WHERE wbN.WayBillDetailId <= wb.WayBillDetailId AND wbn.WayBillID = wb.WayBillID) AS N_stroki, tblBill.BillContract AS N_kontr,
'' AS D_kontr, tblProducts.ProductName AS ProductName, wb.ProductID AS ProductID, tblUnits.UnitShort AS Imj_izm,
tblProducts.ProductProducer AS ProductProducer, wb.EXP AS D_gdn, dbo.fnGetCertificateNum(tblCertificate.cerID) AS cerNum,
tblCertificate.cerIssueDate AS cerIssueDate, tblCertificate.cerIssued AS cerIssued, tblCertificate.cerID AS cerID, tblCertificate.cerTerm AS cerTerm,
0 AS N_sert, '' AS D_sert, wb.WayBillQty AS WayBillQty, 0 AS St_upak, 0 AS KolStUpak, 0 AS Pr_upak, 0 AS KolPrUpak,
tblProducts.ProductPriceState AS Cena_o, (wb.WayBillPrice / (1 + tblProducts.ProductNDS) - tblProducts.ProductPriceState)
/ tblProducts.ProductPriceState AS Nacen_pst, wb.WayBillPrice / (1 + tblProducts.ProductNDS) AS WayBillPriceWONDS,
wb.WayBillPrice AS WayBillPrice, wb.WayBillPrice * wb.WayBillQty / 1.1 AS [Sum], wb.WayBillPrice * wb.WayBillQty AS Sumsnds,
wb.WayBillPrice * wb.WayBillQty - wb.WayBillPrice * wb.WayBillQty / 1.1 AS Sum_nds, tblWayBill.WayBillID AS WayBillID,
tblCertificate.cerIssuer AS cerIssuer, tblCertificate.cerPassportNum AS cerPassportNum, tblCertificate.cerPassportDate AS cerPassportDate,
wb.WayBillDetailID AS WayBillDetailID, tblWayBill.WayBillCustomer AS WayBillCustomer, tblCustomers.CustomerName AS CustomerName,
tblProducts.ProductNDS AS ProductNDS, tblIncome.IncomeCustomer AS IncomeCustomer, IncomeProvider.CustomerName AS IncomeCustomerName,
tblIncomeDetail.IncomeBatch AS IncomeBatch, tblIncomeDetail.IncomeDetailGTD AS IncomeDetailGTD, tblCertificate.cerHolder AS cerHolder
FROM tblWayBill INNER JOIN
tblWayBillDetail wb ON tblWayBill.WayBillID = wb.WayBillID INNER JOIN
tblProducts WITH (nolock) ON wb.ProductID = tblProducts.ProductID INNER JOIN
tblBill WITH (nolock) ON tblWayBill.WayBillBillID = tblBill.BillID INNER JOIN
tblUnits WITH (nolock) ON tblProducts.ProductUnit = tblUnits.UnitID INNER JOIN
tblIncomeDetail WITH (nolock) ON wb.IncomeProductID = tblIncomeDetail.IncomeProductID INNER JOIN
tblIncome WITH (nolock) ON tblIncomeDetail.IncomeID = tblIncome.IncomeID INNER JOIN
tblCustomers ON tblWayBill.WayBillCustomer = tblCustomers.CustomerID INNER JOIN
tblCustomers IncomeProvider ON tblIncome.IncomeCustomer = IncomeProvider.CustomerID LEFT OUTER JOIN
tblCertificate WITH (nolock) ON wb.ProductID = tblCertificate.cerProduct AND wb.IncomeBatch = tblCertificate.cerIncomeBatch
WHERE (tblWayBill.WayBillID = [idWayBill])
ORDER BY wb.WayBillDetailID

  Ответить  
 
 автор: osmor   (19.11.2007 в 20:50)   личное сообщение
 
 

Это я к тому, что разобраться в этом безумном SQL тексте без указания сообщения о ошибке практически невозможно.

  Ответить  
 
 автор: Волчок©   (19.11.2007 в 20:52)   личное сообщение
 
 

А чай с лимоном не помог?

Тогда с медком, с медком...

PS
Слушай, мы парню даже не оставили возможность свое сообщение подредактировать...
Коршуны, чистые коршуны.

  Ответить  
 
 автор: debilder   (20.11.2007 в 13:23)   личное сообщение
 
 

Напишу проще... Есть 1 таблица. из неё одним запросом нужно импортировать часть полей в другую таблицу....Затем другую часть вторым запросом полей с помощью UPDATE вставить в туже таблицу... Поимогите....

  Ответить  
 
 автор: час   (20.11.2007 в 14:31)   личное сообщение
 
 

Попробуйте с помощью конструктора запросов перетащить нужные поля, на панели выбрать запрос на создание таблиц и укажите где создать.
Затем создайте второй запрос, но он будет запрос на добавление.

  Ответить  
 
 автор: osmor   (20.11.2007 в 16:42)   личное сообщение
 
 

Не совсем понимаю в чем проблема
сделайте мастером 2 запроса
1 на добавление
2-й на обновление
посмотрите строку SQL

  Ответить  
 
 автор: debilder   (20.11.2007 в 18:08)   личное сообщение
 
 

С конструктора вставляю ничего не работает. У меня запрос выглядит так:
CurrentDb.Execute ("INSERT INTO CORP_OU1 IN 'C:\ZAKACHKA_EMI\EXPORT\VAT\DATA_NAK177.MDB' SELECT dbo_VAT_CORP_OU1.* FROM dbo_VAT_CORP_OU1 INNER JOIN dbo_VAT_TITLIST ON (dbo_VAT_CORP_OU1.E_EDRPOU = dbo_VAT_TITLIST.E_EDRPOU) AND (dbo_VAT_CORP_OU1.ZVIT_GOD = dbo_VAT_TITLIST.ZVIT_GOD)WHERE (dbo_VAT_TITLIST.ZVIT_GOD=" & RIK & ");")

Его длина привышает 2K. Как мне его разбить на 2 запроса? Помогите...

  Ответить  
 
 автор: osmor   (20.11.2007 в 18:19)   личное сообщение
 
 

А есл из запроса запускать работает?
оказывается работать потому что длинна больше 2К? или какое-то сообщение о ошибке выдает?
А есди езапускать как созраненный запрос ?

currentdb.QueryDefs("ИмяЗапроса").execute

  Ответить  
 
 автор: debilder   (20.11.2007 в 18:30)   личное сообщение
 
 

Выдаёт: "Слишком большая длина записи"

  Ответить  
 
 автор: osmor   (20.11.2007 в 18:42)   личное сообщение
 
 

попробуйте убрать префикс таблицы в неповторяющихся полях т.е.
всесто

select tabl_1.field1,tabl_1.field2, tabl_1.field3, tabl_1.field4 form tabl_1

написать

select  field1, field2,  field3, field4 form tabl_1

  Ответить  
 
 автор: debilder   (20.11.2007 в 19:09)   личное сообщение
 
 

В єтом случае пишит что поле может соответствовать нескольким таблицам. У меня все поля совпадают...

  Ответить  
 
 автор: osmor   (20.11.2007 в 19:11)   личное сообщение
 
 

а если только в неповторяющихся, а если ввести псевдоним для таблиц покороче

  Ответить  
 
 автор: debilder   (20.11.2007 в 19:50)   личное сообщение
 
 

всем полям разные синонимы?

  Ответить  
 
 автор: osmor   (20.11.2007 в 19:53)   личное сообщение
 
 

не полям а таблицам

  Ответить  
 
 автор: debilder   (20.11.2007 в 20:21)   личное сообщение
 
 

можно коротенький пример? если вас не затруднит....

  Ответить  
 
 автор: osmor   (20.11.2007 в 20:29)   личное сообщение
 
 

SELECT t1.Field1, t1.Field2, t1.Field3, t1.Field4, t1.Field5, t1.Field5
FROM SamoeDlinnoeNazvanieTablicy AS t1;

  Ответить  
 
 автор: debilder   (21.11.2007 в 11:15)   личное сообщение
 
 

Не помогло.... В сё равно пишит слишком большая длина записи...

  Ответить  
 
 автор: osmor   (21.11.2007 в 11:23)   личное сообщение
 
 

так... еще раз.
если создать этот запрос в котсрукторе и запустить - он выполняется?

  Ответить  
 
 автор: debilder   (21.11.2007 в 11:34)   личное сообщение
 
 

Нет. Строка состояния показывает что выполнение запроса доходит до половины и затем обраваеться... SQL Server напрямую выгрузил без проблем...

  Ответить  
 
 автор: osmor   (21.11.2007 в 11:43)   личное сообщение
 
 

сдается мне что проблема не в запросе, а в созвращаемых им данных.
К серверу соеденяетесь через ODBC?
Попробуйте ограничить кол-во полей разбив запрос на добавление еще на 2 этапа
сначала довавить записи заполнив часть полей, потом обновить остальные записи, а потом обновить оставшуюся часть.
Возможно что в какой-то строке есть данные которые приводят к такой ошибке.

  Ответить  
 
 автор: debilder   (21.11.2007 в 11:56)   личное сообщение
 
 

Да через ODBC. Счас буду пробывать...

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList