2010-06-22 3 views
33

저는 MS Excel의 Get External Data을 사용하여 데이터베이스에 대한 쿼리를 실행하고 Excel에서 멋지게 표시하는 간단한 보고서를 만드는 경우가 있습니다. 필터링 및 피벗 테이블과 같은 Excel의 뛰어난 기능과 ​​사용자를위한 친숙한 인터페이스를 통해이 기능을 활용할 수 있습니다. 그러나 Microsoft Query의 한 가지 한계는 그래픽으로 표시 할 수없는 쿼리에 매개 변수를 추가 할 수 없기 때문에 작성할 수있는 SQL이 상당히 제한된다는 것입니다.그래픽으로 표시 할 수없는 Excel의 외부 데이터 쿼리에 매개 변수를 추가하는 방법은 무엇입니까?

"그래픽으로 표시 할 수없는 쿼리에는 매개 변수가 허용되지 않습니다"라는 오류 메시지가 있습니까?

답변

5

Excel 2007을 사용하는 경우 VBA를 작성하여 통합 문서의 연결 (예 : 외부 데이터 쿼리)을 변경하고 CommandText 속성을 업데이트 할 수 있습니다. 매개 변수를 원할 때 ?을 단순히 추가하면 다음 번에 데이터를 새로 고치면 연결 값을 묻는 메시지가 나타납니다! 마법. Connection의 속성을 보면 매개 변수 버튼이 활성화되어 정상적으로 사용할 수 있습니다.

예. 매크로를 작성하여 디버거에서 단계별로 실행하여 CommandText를 적절히 설정하십시오. 일단 매크로를 삭제하면 쿼리를 업데이트 할 수 있습니다.

Sub UpdateQuery 
    Dim cn As WorkbookConnection 
    Dim odbcCn As ODBCConnection, oledbCn As OLEDBConnection 
    For Each cn In ThisWorkbook.Connections 
     If cn.Type = xlConnectionTypeODBC Then 
      Set odbcCn = cn.ODBCConnection 

      ' If you do have multiple connections you would want to modify 
      ' the line below each time you run through the loop. 
      odbcCn.CommandText = "select blah from someTable where blah like ?" 

     ElseIf cn.Type = xlConnectionTypeOLEDB Then 
      Set oledbCn = cn.OLEDBConnection 
      oledbCn.CommandText = "select blah from someTable where blah like ?" 
     End If 
    Next 
End Sub 
-1

은 YES - 솔루션은 XML 파일에 통합 문서를 저장하고 메모장에 텍스트로이 파일을 편집 (예 : 'XML 스프레드 시트 2003'.)! 메모장의 "SEARCH"기능을 사용하여 검색어 텍스트를 찾고 데이터를 "?"로 변경하십시오.

Excel에서 저장하고 열면 데이터를 새로 고치고 Excel에서 매개 변수에 대한 정보를 얻으십시오.

22

쉬운 해결 방법 (툴팁에 표시 만)

  1. 오른쪽 표를 클릭 "표"컨텍스트 마뉘를 확장
  2. 클릭 버튼 "연결 속성"을 "외부 데이터 속성"을 선택합니다 (더 VBA는 필요 없음)
  3. 바로 가기 탭 "정의"

여기에서 '?'를 추가하여 직접 SQL을 편집하십시오. 어디서나 매개 변수를 원합니다. 당신이 잔소리하지 않는 것을 제외하고는 이전과 같은 방식으로 작동합니다.

+2

고마워요! 이것은 탁월한 솔루션입니다. 빠르고 쉽고, 잔소리가없고, 매개 변수를 보유 할 Excel 셀을 직접 선택할 수 있습니다. ** 이것이 받아 들인 응답이어야한다고 생각합니다 ** –

+0

발견 한 것보다 더 많은 단계가 있지만이 답이 가장 도움이되었습니다. 여기에서 나는 그것으로 놀 수 있었다. 감사! –

+0

이 솔루션을 시도 할 때마다 Excel이 중단됩니다. 특정 명시 적 값을 경우 잘 작동합니다. 그런 다음 매개 변수를 추가하려고하면 충돌이 발생하여 중단됩니다. – jamiebarrow

45

Excel ' SQL Server 쿼리에 대한   인터페이스는 사용자 지정 매개 변수를 허용하지 않습니다.  이 방법은 일반적인   Microsoft Query를 만든 다음 매개 변수를 추가하고 매개 변수가있는 쿼리를 연결에 붙여 넣는 것입니다. ' 속성.   다음은 자세한 엑셀 2010 단계는 다음과 같습니다 버튼 쿼리의에서 을 선택

  1. 열기 엑셀
  2. 고토 데이터 탭 기타 소스에서 에서
  3. " 데이터 소스 선택 " 창이 나타납니다.   데이터 소스를 선택하고 OK을 클릭하십시오.
  4. 쿼리 Qizard
    1. 열 선택 : 창이 나타납니다.   목표는 일반 쿼리를 만드는 것입니다. 작은 테이블에서 하나의 열을 선택하는 것이 좋습니다.
    2. 데이터 필터링 : 그냥 다음
    3. 정렬 순서를 클릭 : 그냥 다음
    4. 마침을 클릭 : 그냥 마침을 클릭합니다.
  5. " 데이터 가져 오기 " 창이 나타납니다 :
    1. 등록 ... 버튼을 클릭합니다. 가     절 엑셀 매개 변수를 포함  에게 추가 " 섹션
      1. 정의 탭 " 명령 텍스트에서
      2. 를 선택합니다.   '   원하는 모든 매개 변수를  에 추가하는 것이 중요합니다.   예를 들어 두 개의 매개 변수가 필요한 경우 다음을 추가 할 수 있습니다.
        WHERE 1 =? 2 =? 피벗 테이블 보고서
      3. 클릭을 다시 " 데이터 가져 오기 " 창
    2. 에 입수를 선택하는
    3. 클릭 확인확인 당신은 각 매개 변수에 대한 매개 변수 값을 입력하라는 메시지가 표시됩니다
  6. . 당신이 매개 변수를 입력 일단
  7. 당신은
    1. 정의 탭에서
    2. 을 클릭
    3. 이동 데이터 탭 batck와의 연결을 속성 버튼을 클릭하여 피벗 테이블에있을 것입니다 " 명령 텍스트 : " 섹션, 앞에서 정의한 것과 동일한 수의 매개 변수로 원하는 실제 SQL 쿼리을 붙여 넣습니다.
    4. 는  
      1. 은 속성 창
    5. 를 닫 각 매개 변수
    6. 클릭 확인
  8. 클릭 확인의 프롬프트 값를 입력 ... 단추 매개 변수를 클릭합니다 축하합니다. 매개 변수가 있습니다.
+0

SQL Server 쿼리에 매개 변수를 추가 할 수 있습니까? SQL Server DB에 대한 연결? – Dan

+0

환상적입니다. 나는 항상 거기에 그 매개 변수를 얻는 방법을 궁금해했습니다. –

+0

잘 작동하지만 LIKE에 약간의 문제가 있습니다. 어떤 글자를 넣으면 괜찮은 것 같아요? 명령 텍스트에서 'foobar'를 사용하지만 foo %를 사용하면 작동하지 않습니다. –