2009-03-04 7 views
3

Excel (2007)을 사용하여 SQL Server 2005에서 데이터를 가져올 수 있습니다. 데이터 연결을 추가하고 원하는 데이터를 검색하는 사용자 지정 SQL 쿼리를 입력합니다. 시원한.Excel 외부 데이터 요청에서 매개 변수를 사용하려면 어떻게해야합니까?

하지만 내가 추가하고 싶은 것은 스프레드 시트의 알려진 셀에있는 값을 기반으로 쿼리를 매개 변수화하는 것입니다. 내 쿼리는

SELECT * FROM dbo.MyDataTable WHERE Col1 = 'Cell("B2")'

처럼 뭔가

SELECT * FROM dbo.MyDataTable WHERE Col1 = 'apples'

에서

을 어떻게이게 가능 갈 것? 그렇다면 어떻게?

답변

3

Excel로 데이터를 가져 오는 데 using MS Query 인 경우 워크 시트의 셀 값을 쿼리의 매개 변수로 사용하는 방법을 this page에 표시합니다.

+0

이제 그게 내가 실제로 찾고 있었던거야. 감사. – witttness

0
Dim SQLString as String 

SQLString = "SELECT * FROM dbo.MyDataTable WHERE Col1 = '" & Cells("B2") & "'" 

이 방법의 단점을 볼 SQL Injection attacks보고 가치가있을 것입니다,하지만 반드시 당신이 다음과 같이 구조화 코드를 시도

1

을해야 할 일에 대해 고려하지 않을 수 있습니다 :

Dim strSQL as String 
Dim strFruit As String 

strFruit = CStr(ThisWorkbook.Sheets("Sheet1").Range("A1").FormulaR1C1) 

strSQL = "SELECT * FROM dbo.MyDataTable WHERE Col1 = '" & strFruit & "'" 

SQL 쿼리에 병합하기 전에 매개 변수를 먼저 변수에로드하는 것이 유용하다는 것을 알았습니다.

SQL 문자열을 더 읽기 쉽게 만들어 주며 매개 변수를 사용하기 전에 매개 변수를 확인/치료할 수 있습니다.

1

저는 Excel 2007을 사용하지 않았지만 이전 버전의 Excel에서는 SQL 쿼리 통합이 정말 싫었습니다. 특히 나는 VBA 코드를 한꺼번에 해킹하지 않고 당신이 묻는 것을 정확하게 수행하는 것이 어렵다는 것을 알았다. 제가 조사를 좀 해봤 마지막에 추가 롭 반 겔더의 엑셀 쿼리를 사용하기로 결정

http://vangelder.orconhosting.net.nz/excel/queryeditor.html

자신의 GUI의 '매개 변수'섹션은 매개 변수를 설정하고 유틸리티가 하나의 사용자에게 메시지를 표시 할 수 있습니다 값 또는 셀 참조에서 값을 가져옵니다. 나는 후자가 당신이 원하는 것을 정확하게 믿습니다. 셀 값이 변경되면 자동 새로 고침 기능도 있습니다. 내 DB에서 데이터의 유효성을 검사 할 때 자동 새로 고침 기능을 많이 사용합니다.

내 쿼리가 손상되어 더 이상 열거 나 텍스트를 볼 수없는 몇 가지 상황이있었습니다. 따라서 Excel 스프레드 시트의 탭을 쿼리 용으로 유지하고 쿼리 텍스트를 해당 특수 페이지의 셀에 복사하는 것이 좋습니다. 그런 식으로 쿼리 도구가 쿼리를 얻으면 다시 작성하지 않아도됩니다.

무료이지만 제 3 자 도구는 원하는 도구가 아니지만 잘 작동합니다. 행운을 빕니다!

+0

+1하지만 기존 쿼리를 수정할 수 없습니다! – Sam