Я создаю отчет Excel, которым могут управлять другие пользователи, кроме меня.
В данный момент я борюсь с созданием параметров в MS Query, чтобы они могли получать данные из ячейки в Excel.
Каждый раз, когда я пытаюсь вставить свой код, где я изменил исходные даты с помощью «вопросительных знаков», я получаю следующую ошибку.
«Параметры не допускаются в запросах, которые не могутбыть отображены grpahically. "
Я попытался создать параметры для очень простых запросов.Как
select *
From dmbase.test
where ID = ?
И там параметры работают, я мог бы добавить даже 10 или больше, и все равно будет работать.
Кроме того, я попытался вставить код, как он есть в SSMS, а затем через Data-Properties-> Query Properties -> Definitions, чтобы изменить код и добавить параметры в поле «Command Text», ноExcel просто выдает ошибку.
Также пытался объявить переменные для моих параметров, но это не сработало.Дали ошибку в отношении символов.
declare Parameter1 date(10)
set Parameter1 = ?
declare Parameter2 date(10)
set Parameter2 = ?
Я не на 100% уверен, что виноваты объединения, но это мое чувство.
Мой код можно увидеть ниже.
select
loc.LocationLang
,loc.DistrictLang
,loc.InventoryRegionLang
,cod.ContractNumber
,cus.CustomerLang
,cus.InternalCustomerType
,cus.CustomerGroupCode
,cus.Organizationalcode
,css.CustomerSubSegmentLang
,loc.AnalysisRegionLang
,dht.ContractHeaderTypeLang
,cod.RentalOutDate
from
dmbase.fContractOpenDetail as cod
left join dmbase.dLocation as loc
on cod.LocationID = loc.LocationID
left join dmbase.dCustomer as cus
on cod.CustomerID = cus.CustomerID
left join dmbase.dCustomerSubSegment as css
on cus.CustomerSubsegmentID = css.CustomerSubSegmentID
left join dmbase.dContractHeaderType as dht
on cod.ContractHeaderTypeAMID = dht.ContractHeaderTypeAMID
where
cod.CompanyID = '6'
and cod.RentalOutDate between ? and ?
and left(loc.LocationLang,4) = '7201'
order by cod.ContractNumber
Буду признателен, если вы скажете, как я мог бы ввести параметры, чтобы я не получил ошибку «Параметры не разрешены ...».