2013-04-04 1 views
3

here과 같이 Microsoft 쿼리를 사용하여 매개 변수 쿼리를 만들었습니다. 하지만 대신 10 ~ 15 조인 및 WHERE 절에 매개 변수를 언급 내가 얻을 오류Excel에서 SQL Server의 MS 쿼리에서 임시 변수에 매개 변수 전달

[마이크로 소프트] [일의 원하는 결과를 얻기 위해 임시 변수에 매개 변수를 전달하고 테이블 변수를 생성하고 편집 할 때 ODBC SQL Server 드라이버] 잘못된 매개 변수 번호

[Microsoft] [ODBC SQL Server 드라이버] 잘못된 설명자 인덱스

내 코드는 가능한 것은 SQL Server 2005에서 데이터베이스 2007 Excel에서 임시 변수에 매개 변수를 전달하는 방법 많은 임시 테이블과

BEGIN 
    SET NOCOUNT ON 

    DECLARE @sDate DATETIME, @eDate DATETIME; --used in many places to manipulate temp table 

    SET @sdate = ? 
    SET @edate = ? 

    DECLARE @Temptable TABLE (Variable1 INT ,...... VariableN DECIMAL(18,4)); 

    Manipulate @temptable 

    Select * from @Temptable 
END 

임시 변수 방법 복잡 다음과 같이 보입니다? 데이터베이스에 저장 프로 시저를 만들고 매개 변수로 전달할 수있는 권한이 없습니다.

David Vandenbos에 의해 제안 내가 VBA를 통해 방법을 생각했다

UPDATE. 나는 이것이 VBA의 도움없이 할 수 있는지 궁금하다.

+2

+1, 위대한 질문 엑셀 2010에서 완벽하게 작동합니다. 불행히도 MS Query를 통해 Excel에서이 작업을 수행 할 수 있다고 생각하지 않습니다. 쿼리는 다른 모든 것을 전달할 수 있지만 "그래픽으로 표시"할 수있는 쿼리에서 매개 변수를 전달하는 것으로 제한됩니다. 데이터베이스에 대한보기를 만들 권한이 있습니까? 뷰를 작성한 다음 매개 변수를 사용하여 Excel로 리턴 할 수 있습니다. 그렇지 않으면 VBA가 필요할 것 같습니다. – dav

+0

@DavidVandenbos VBA를 통해 길을 발견했습니다. 감사합니다. – Ram

답변

0

변수를 선언하기 전에 SET NOCOUNT ON을 추가 할 수 있습니다. 나는 마이크로 소프트 쿼리와 SQL 서버 2005

SET NOCOUNT ON 
DECLARE @VAR1 VARCHAR(4) 
SET @VAR1 = '1234' 
SELECT @VAR1 

https://social.msdn.microsoft.com/Forums/office/en-US/d8003854-d11a-44f7-960c-a042347736d7/microsoft-query-cannot-run-sql-code-with-a-tsql-variables-in-it?forum=exceldev

+0

위 질문의 코드에서 볼 수 있듯이'SET NOCOUNT ON'을 추가했습니다. Excel 2007에서는 작동하지 않습니다. – Ram

관련 문제