2009-08-16 5 views
28

MS Excel을 사용하여 ODBC를 통해 MySQL 데이터베이스에서 데이터를 가져옵니다.
SQL 쿼리를 사용하여 데이터를 성공적으로 가져옵니다. 하지만 이제는 쿼리를 매개 변수화해야합니다.
그런 쿼리의 매개 변수로 셀 값 (스프레드 시트 셀)을 사용할 수 있는지 궁금합니다. 이 쿼리에 대한 예를 들어
:Excel : SQL 쿼리의 매개 변수로 셀 값 사용

select name from user where id=1 

내가 스프레드 시트에서 셀 D4, 말,에서 id 값을 좀하고 싶습니다.

쿼리를 매개 변수화하는 올바른 방법입니까? 내가 어떻게 할 수 있니?

감사합니다.

답변

30

나는 당신과 같은 문제가 있었지만, 노비는 나를 이해할 수있다. 그러나 나는이 방법으로 그것을 해결했다.

SELECT NAME, TELEFONE, DATA 
FROM [sheet1$a1:q633] 
WHERE NAME IN (SELECT * FROM [sheet2$a1:a2]) 

이 다른 시트에 매개 변수를 삽입 할 필요는 SQL은 당신이 정보를 선택하고 원하는 매개 변수로 비교할 수, 같은 데이터베이스 등의 정보를 고려할 것입니다.

+0

고마워, 나는 그것에 대해 몰랐다. 시도해 볼게. – GetFree

+0

안녕하세요, 최근 질문에 대해 유감스럽게 생각합니다. 이름이 지정된 함수/명명 된 셀을 매개 변수로 사용할 수도 있습니다. –

3
queryString = "SELECT name FROM user WHERE id=" & Worksheets("Sheet1").Range("D4").Value 
+0

나는 VBA 스크립트에서 그렇게해야한다고 생각한다. 맞습니까? 나는 그 표현을 SQL 윈도우 안에 입력 할 수 없다고 생각한다. – GetFree

+0

그건 VBA입니다, 예 – barrowc

10

Microsoft 쿼리를 사용하는 경우 "?" 귀하의 질의에 ...

사용자 이름 선택 어디에서 id =?

엑셀로 돌아갈 때 셀/데이터/기타를 묻는 작은 창이 팝업됩니다.

팝업 창에서 "항상이 셀을 매개 변수로 사용"을 선택하여 데이터를 새로 고칠 때마다 해당 셀을 정의 할 필요가 없습니다. 이것이 가장 쉬운 방법입니다.

1

SQL은 MS SQL 구문과 다소 비슷합니다.

SELECT * FROM [table$] WHERE *; 

테이블 이름을 $ 기호로 끝내고 모든 것을 대괄호로 묶어야합니다. 조건으로 모든 값을 사용할 수 있지만 Excel에서 "SQL Apostrophes (SQL Apostrophes)"(')라고 사용하는 것을 허용하지 않았으므로 한 단어로 된 열 제목을 사용하는 것이 좋습니다. 당신이 "사용자"라는 테이블에 나열된 사용자를 가지고 있고, ID가 "ID"와 "이름"이라는 제목의 열에서 이름을 제목의 칼럼에있는 경우

, 쿼리는 다음과 같이 표시됩니다

SELECT Name FROM [Users$] WHERE id = 1; 

희망이 도움이됩니다.

관련 문제