|
|
|
| есть запрос работает как надо - переношу текст запроса в код
делаю
str_ = "SELECT LZK.Naimen, LZK.EI, Izd.Zakaz " & _
"FROM (Izd INNER JOIN (Gurn_LZK INNER JOIN LZK ON Gurn_LZK.Kod_LZK_plan = LZK.Izd) ON Izd.Kod_Izd = Gurn_LZK.Izd) LEFT JOIN Naimen_Tcena_Zakaz_Select ON LZK.Naimen = Naimen_Tcena_Zakaz_Select.Naimen " & _
"WHERE (((Naimen_Tcena_Zakaz_Select.Kod_TC) Is Null)) GROUP BY LZK.Naimen, LZK.EI, Izd.Zakaz HAVING (((Izd.Zakaz)=67))"
set rst=dbs.OpenRecordset(str_)
|
в строке set - начинает орать чтослишком мало параметров нужно 1
сократил текст до
str_ = "SELECT LZK.Naimen, LZK.EI " & _
"FROM LZK LEFT JOIN Naimen_Tcena_Zakaz_Select ON LZK.Naimen = Naimen_Tcena_Zakaz_Select.Naimen"
все одно орет про мало параметров -
Naimen_Tcena_Zakaz_Select - это запрос который нормально работает как запрос вот текст
SELECT Naimen_Zakaz_Tcena.*
FROM Naimen_Zakaz_Tcena
WHERE (((Naimen_Zakaz_Tcena.Zakaz)=[Forms]![Gurn_Izd]![Zakaz1].[Form]![Kod_Zak]));
|
получается если запросом ссылаться на него - работает, если прописть в строке и попытаться выполнить - фигвам.
почему VB не может выполнить вложенный запрос? | |
|
| |
|
|
|
|
| аааааа - вот так заработало - шоб ему 100 лет жить.
str_ = "SELECT LZK.Naimen, LZK.EI " & _
"FROM LZK LEFT JOIN (SELECT Naimen_Zakaz_Tcena.* " & _
"FROM Naimen_Zakaz_Tcena " & _
"WHERE (((Naimen_Zakaz_Tcena.Zakaz)=" & [Forms]![Gurn_Izd]![Zakaz1].[Form]![Kod_Zak] & "))) as SSS ON LZK.Naimen = SSS.Naimen"
|
| |
|
| |
|
|
|
| та да | |
|
| |
|
|
|
| Или вместо set rst=dbs.OpenRecordset(str_):
Set qdf =dbs.CreateQueryDef("",str_)
qdf.Parameters(0) = EVal(qdf.Parameters(0).Name)
set rst=qdf.OpenRecordset
|
| |
|
| |
|
|
|
| спасибо опробую, писанины меньше | |
|
| |