Проблемы с присоединением таблиц в Excel VBA

Я пытаюсь взять хрустальный отчет sql и преобразовать его, чтобы использовать его в excel. У меня возникают проблемы с синтаксисом операторов присоединения в Excel. Я могу сделать пару таблиц индивидуально, но не могу их комбинировать.

Из отчетов о кристаллах: что я пытаюсь скопировать:

SELECT "Material_Req"."Job", "Material_Req"."Pick_Buy_Indicator", "Material_Req"."Material", "Material_Req"."Description", "Material_Req"."Vendor_Reference", "PO_Detail"."PO", "Material_Req"."Est_Qty", "Source"."Act_Qty", "PO_Header"."Vendor", "PO_Detail"."Due_Date"
 FROM (("PRODUCTION"."dbo"."Material_Req" "Material_Req" LEFT OUTER JOIN "PRODUCTION"."dbo"."Source" "Source" ON "Material_Req"."Material_Req"="Source"."Material_Req") LEFT OUTER JOIN "PRODUCTION"."dbo"."PO_Detail" "PO_Detail" ON "Source"."PO_Detail"="PO_Detail"."PO_Detail") LEFT OUTER JOIN "PRODUCTION"."dbo"."PO_Header" "PO_Header" ON "PO_Detail"."PO"="PO_Header"."PO"
 WHERE "Material_Req"."Pick_Buy_Indicator"='b' AND "Material_Req"."Est_Qty">"Source"."Act_Qty"
 ORDER BY "Material_Req"."Job"

Предыдущая работа:

sqlMatlReq = "select job.job, material_req.vendor_reference, material_req.Material,'' As Description, material_req.Vendor," _
 & "(material_req.est_qty) As Qty, (material_req.act_qty) As Qty, " _
 & "material_req.due_date, " _
 & " material_req.status " _
 & "from (material_req inner join job on material_req.job=job.job) " _
 & "left join material on material_req.material=material.material " _
 & "where material.material is not null " _
 & "and job.part_number is not null " _
 & "and Job.Status in('Active') " _
 & "and material_req.act_qty in('0') " _
 & "Union all " _
 & "select job.job, material_req.vendor_reference, material_req.Material, material_req.description, material_req.Vendor," _
 & "(material_req.est_qty), (material_req.act_qty) As Qty," _
 & " material_req.due_date, material_req.status " _
 & "from (material_req inner join job on material_req.job=job.job) " _
 & "left join material on material_req.material=material.material " _
 & "where material.material is null " _
 & "and job.part_number is not null " _
 & "and Job.Status in('Active') " _
 & "and material_req.act_qty in('0') " _
 & "order by job.job;"

Насколько я понял: проблемы, связанные с тремя

'sqlMatlReq = "select job.job, material_req.material, material_req.Vendor_Reference, material_req.description, material_req.Est_Qty " _
 '& "from (material_req inner join job on material_req.job=job.job) " _

'sqlMatlReq = "select source.Act_Qty, PO_Detail.PO, PO_Detail.Due_Date " _
 '& "from source left outer join PO_Detail on source.Act_qty=PO_Detail.PO_Detail "

'sqlMatlReq = "select PO_Header.vendor " _
 '& "from PO_Header"

Заранее спасибо.

1 ответ

Хранимые процедуры SQL Server для использования с Crystal Reports

CREATE PROCEDURE sp_SampleProcedure
 AS

 BEGIN 
 SET NOCOUNT ON;

 SELECT table_catalog, table_schema, table_name, table_type
 FROM tbldm.information_schema.tables 
 WHERE table_schema = 'dbo'
 AND table_type = 'BASE TABLE';

 END;

Где любой запрос, который вы хотели бы видеть, чтобы предоставить данные клиенту Crystal Reports, должен быть представлен последним <code>SELECT</code> выпущенным в процедуре STORED SQL Server. Этот пример указывает на словарь данных SQL для имен и типов таблиц.

  1. Определите DSN-соединение между клиентом Crystal Reports и SQL Server. До этого уже был подготовлен один из других отчетов.

  2. Хранимые процедуры должны отображаться в каталоге схемы вместе с другими объектами, обычно найденными автором отчета Crystal при выборе объектов db для использования.

  3. Примечание. Процедуры могут быть параметризованы, а их входные переменные используются в самой процедуре.

licensed under cc by-sa 3.0 with attribution.