Office.com 전체 검색
 
지원
 
 

SQL.REQUEST 함수

적용 대상: Microsoft Office Excel 2007

 

이 항목의 일부 내용은 특정 언어에는 적용되지 않을 수 있습니다.

 중요   Excel 2002 추가 기능 Open Database Connectivity(XLODBC.XLA)는 Excel 2002에서만 지원되므로 SQL.REQUEST 함수는 Microsoft Office Excel 2007에서 지원되지 않습니다.

SQL.REQUEST 함수는 외부 데이터 원본과 연결하여 워크시트에서 쿼리를 실행한 다음 매크로 프로그래밍을 사용하지 않고 결과를 배열로 표시합니다. 이 함수를 사용할 수 없으면 Microsoft Excel ODBC 추가 기능 (추가 기능: Microsoft Office에 사용자 지정 명령 또는 사용자 지정 기능을 추가하는 보조 프로그램입니다.) 프로그램(XLODBC.XLA)을 설치해야 합니다. 추가 기능은 Microsoft Office 웹 사이트에서 설치할 수 있습니다.

구문

SQL.REQUEST(connection_string,output_ref,driver_prompt,query_text,col_names_logical)

connection_string    데이터 원본에 연결하기 위해 사용하는 드라이버에 필요한 데이터 원본 이름, 사용자 ID, 암호 등의 정보를 제공합니다. 이 정보는 해당 드라이버 형식에 맞아야 합니다. 다음 표에서는 세 가지 드라이버에 대한 각 연결 문자열 예제를 보여 줍니다.

드라이버 connection_string
dBASE DSN=NWind;PWD=test
SQL Server DSN=MyServer;UID=dbayer; PWD=123;Database=Pubs
ORACLE DNS=My Oracle Data Source;DBQ=MYSER VER;UID=JohnS;PWD=Sesame
  • 연결하기 전에 connection_string에서 사용하는 DSN(데이터 원본 이름)을 정의해야 합니다.
  • connection_string을 배열이나 문자열로 입력할 수 있습니다. connection_string이 250자를 초과하면 반드시 배열로 입력해야 합니다.
  • connection_string을 사용하여 데이터 원본에 액세스할 수 없을 때는 #N/A 오류 값이 반환됩니다.

output_ref    완성된 연결 문자열을 넣을 위치의 셀 참조입니다. SQL.REQUEST를 워크시트에 입력하면 output_ref는 무시됩니다.

  • SQL.REQUEST로 완성된 연결 문자열을 구하려면 output_ref를 사용해야 합니다. 이 경우 매크로 시트에 SQL.REQUEST를 입력해야 합니다.
  • output_ref를 생략하면 완성된 연결 문자열이 반환되지 않습니다.

driver_prompt    드라이버 대화 상자가 나타나는 시점과 사용할 수 있는 옵션을 지정합니다. 다음 표의 숫자들 중에서 하나를 사용합니다. 이 인수를 생략하면 기본값으로 2가 사용됩니다.

driver_prompt 설명
1 드라이버 대화 상자가 항상 나타납니다.
2 연결 문자열과 데이터 원본에 대한 정보가 부족하여 연결을 완성할 수 없을 때만 드라이버 대화 상자가 나타납니다. 모든 대화 상자 옵션을 사용할 수 있습니다.
3 연결 문자열과 데이터 원본에 대한 정보가 부족하여 연결을 완성할 수 없을 때만 드라이버 대화 상자가 나타납니다. 필요하지 않은 옵션들은 흐리게 표시되어 사용할 수 없습니다.
4 대화 상자가 나타나지 않습니다. 연결이 실패하면 오류 값이 반환됩니다.

query_text    데이터 원본에 대해 실행할 SQL 문입니다.

  • 지정한 데이터 원본에 대해 query_text를 실행하지 못하면 #N/A 오류 값이 반환됩니다.
  • 참조 영역을 query_text에 연결하여 쿼리를 업데이트할 수 있습니다. 다음은 $A$3이 변경될 때마다 SQL.REQUEST가 새 값을 사용하여 쿼리를 업데이트하는 예제입니다.

"SELECT Name FROM Customers WHERE Balance > "&$A$3&"".

Microsoft Excel에서 문자열의 길이는 255자를 넘을 수 없습니다. query_text가 이 길이보다 길면 셀의 세로 범위에 쿼리를 입력하고 범위 전체를 query_text로 사용합니다. 셀의 값을 결합하여 완성된 SQL 문을 만듭니다.

col_names_logical    열 이름이 결과의 첫째 행으로 반환되는지 여부를 지정합니다. 열 이름이 결과의 첫째 행으로 반환되게 하려면 이 인수를 TRUE로 설정하고, 열 이름이 반환되지 않게 하려면 FALSE로 설정합니다. col_names_logical을 생략하면 열 이름이 반환되지 않습니다.

반환

  • 모든 작업이 완료되면 쿼리 결과 배열 또는 쿼리의 영향을 받은 행 수가 반환됩니다.
  • connection_string을 사용하여 데이터 원본에 액세스할 수 없을 때는 #N/A 오류 값이 반환됩니다.

주의

  • SQL.REQUEST는 배열로 입력할 수 있습니다. SQL.REQUEST를 배열로 입력하면 결과도 그 범위에 맞는 배열이 됩니다.
  • 셀 범위가 결과 집합보다 더 크면 필요한 크기가 되도록 결과 배열에 빈 셀이 추가됩니다.
  • 결과 집합이 배열로 입력한 범위보다 더 크면 전체 배열이 반환됩니다.
  • SQL.REQUEST의 인수는 Visual Basic for Applications의 SQLRequest 함수의 인수와 순서가 다릅니다.

예제

DBASE4라는 dBASE 데이터베이스에 대해 쿼리를 실행할 때 다음 수식을 셀에 입력하면 쿼리 결과 배열이 반환되고 첫 번째 행에 열 이름이 놓입니다.

SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2, "Select Custmr_ID, Due_Date from Orders WHERE order_Amt>100", TRUE)