문제

이미 Excel (2007)을 사용하여 SQL Server 2005에서 데이터를 가져올 수 있습니다. 데이터 연결을 추가하고 원하는 데이터를 검색하는 사용자 정의 SQL 쿼리를 입력 할 수 있습니다. 시원한.

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

내 쿼리가 나올 것입니다

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

같은 것입니다

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

이게 가능해? 그렇다면 어떻게?

도움이 되었습니까?

해결책

당신이 MS 쿼리 사용 데이터를 Excel로 가져 오려면 이 페이지 워크 시트의 셀의 값을 쿼리의 매개 변수로 사용하는 방법을 보여줍니다.

다른 팁

다음과 같이 코드 구조화를 시도하십시오.

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 문자열을 더 읽기 쉽게 만들고 사용하기 전에 매개 변수를 확인/청소할 수 있습니다.

Excel 2007을 사용하지 않았지만 이전 버전의 Excel에서는 SQL 쿼리 통합을 정말 싫어합니다. 특히 나는 VBA 코드를 해킹하는 데 의지하지 않고 정확하게 요구하는 것이 어렵다는 것을 알았습니다. 나는 약간의 연구를했고 마침내 Rob van Gelder의 Excel Query 추가를 사용하기로 결정했습니다.

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

GUI의 '매개 변수'섹션을 사용하면 매개 변수를 설정하고 유틸리티를 사용자에게 값을 자랑하거나 셀 참조에서 값을 가져올 수 있습니다. 나는 후자가 당신이하고 싶은 일이라고 생각합니다. 또한 셀 값이 변할 때 자동 반발 할 수 있습니다. DB에서 데이터를 검증 할 때 자동 새로 고침 기능을 많이 사용합니다.

쿼리가 손상되어 더 이상 열거 나 텍스트를 볼 수없는 몇 가지 상황이있었습니다. 결과적으로 쿼리에 대한 Excel 스프레드 시트에 탭을 유지하고 쿼리 텍스트를 해당 특수 페이지의 셀에 복사하는 것이 좋습니다. 이렇게하면 쿼리 도구가 쿼리를 섭취하면 처음부터 쿼리를 재건 할 필요가 없습니다.

제 3 자 도구는 무료이지만, 당신이 찾고있는 것이 아닐 수도 있지만, 그것은 나에게 적합합니다. 행운을 빕니다!

Dim SQLString as String

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

볼 가치가 있습니다 SQL 주입 공격 이 접근법의 단점을 보려면 반드시해야 할 일을 고려할 필요는 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top