2009-10-15 1 views
3

많은 사용자가 Microsoft Query를 사용하여 Excel 2003에서 ODBC 쿼리를 작성하여 회사 데이터에 액세스합니다. 더 복잡한 것들을 위해 종종 나를 관련 시키게됩니다.Excel 2003/MS 쿼리에서 SQL Server 2000 인라인 테이블 반환 함수 호출

특정 데이터를 추출하는 가장 논리적 인 방법은 인라인 테이블 반환 함수를 사용하여 매개 변수화 된보기의 기능을 구현하는 것입니다. 쿼리 분석기에서 호출 할 때 잘 작동 :

SELECT * FROM fn_AverageRecovery('2009-07','2009-10') 

Sequence Process Centre          Process Centres_Description      Input Qty            Output Qty           Recovery            
----------- -------------------------------------------------- -------------------------------------------------- ----------------------------------------------------- ----------------------------------------------------- ----------------------------------------------------- 
10   GM             Green Mill           12345.678            11223.344            11 
11   LYR            Log Yard Report         98765.432            55443.322            99 
20   MB             MultiBand Resaw         5555.666            5555.444            50     

그러나 MS 쿼리에서 동일한 SELECT 절은 오류가 발생 입력 :. 테이블 'fn_AverageRecovery를 ('2009-07 ''추가 할 수 없습니다를

뿐만 아니라 그,하지만 내가 정말로하고 싶은 것은 마침표 매개 변수를 스프레드 시트에서 가져온 것입니다. 그러나 물음표로 리터럴을 대체하면 MS Query가 두려운 오류를줍니다. 매개 변수는 그래픽으로 표시 할 수없는 쿼리에는 사용할 수 없습니다 .

이제는 과거의 상황을 회피하기 위해 오히려 다음, 엑셀 내에서 결과 집합에서 셀을 클릭하면, 몇 가지 간단한 SQL 문을 입력 VBA로 전환하고 직접 실행 창에서 수동으로 CommandText 속성을 설정하는 우아한 방법 : VBA에서

ActiveCell.QueryTable.CommandText="select * from fn_AverageRecovery(?,?)" 

불만.

[Microsoft] [ODBC SQL Server 드라이버] 잘못된 매개 변수 번호

[마이크로 소프트] [ODBC SQL 서버 : 나는 Excel로 다시 전환하고 새로 고침 데이터 셀을 마우스 오른쪽 버튼으로 클릭하고 선택할 때 나는 두 가지 오류를 얻을 수 드라이버] 잘못된 설명자 인덱스

나는 이것을 가로 질러 왔을 때마다 한 시간 정도 노력해서 일을하려고했지만 항상 다른 방법으로 해결해야했습니다. 나는 누군가가 이것을 정복했는지 알고 싶다.

감사

웨인 아이보리

+0

Wayne, 저는 2009 년 출간 된 소식을 알고 있지만 어쨌든 물어보고 싶었습니다. MS Query에서 테이블 값 함수를 사용할 수 있었습니까? 함수에 실제로 입력 매개 변수가 필요하지 않더라도 "매개 변수가 함수에 제공되지 않았습니다."라는 오류가 발생합니다. –

답변

1

당신은 저장 프로 시저에 이러는 및 엑셀 시트가 저장 프로 시저를 실행 가지고 시도 할 수 있습니다. 나는 이것이 이것을 처리 할 수있을 것이라고 생각할 것이다. 그런 다음 스토어드 프로 시저가 테이블 함수에 대해 조회를 실행하도록하십시오.

+0

감사합니다. 데니, 네 말이 맞아. 하지만 Function을 사용하기를 원하는 이유는 JOIN에서 사용하기를 원하기 때문입니다. 물론 Stored Procedure로는 할 수 없습니다. –