ADOX를 사용하여 Access에서 SQL 통과 쿼리를 만드는 방법

보통: 기본 매크로, 코딩 및 상호 운용성 기술이 필요합니다.

이 문서는 Microsoft Access 데이터베이스(.accdb 및 .mdb)에만 적용됩니다.

요약

이 문서에서는 Microsoft ADO(ActiveX Data Objects)를 사용하여 Microsoft VBA(Visual Basic for Applications)에서 SQL 통과 쿼리를 만드는 방법을 보여 줍니다.

추가 정보

SQL 통과 쿼리를 만드는 애플리케이션용 Visual Basic에서 함수를 작성할 수 있습니다. SQL 통과 쿼리는 SQL 문과 연결 문자열 구성됩니다. 쿼리를 실행하면 처리를 위해 명령을 데이터베이스 서버로 직접 보냅니다. 이렇게 하면 Microsoft Jet 데이터베이스 엔진의 오버헤드가 제거됩니다.

DAO(데이터 액세스 개체) 모델을 사용하면 SQL 통과 쿼리를 사용하여 외부 데이터에 액세스할 때 성능을 향상시킬 수 있습니다. ADO를 사용하면 Microsoft OLE DB Provider for SQL Server 사용하여 Microsoft Jet 또는 ODBC의 오버헤드 없이 SQL Server 직접 액세스할 수 있습니다. ODBC용 Microsoft OLE DB 공급자를 사용하여 모든 ODBC 데이터 원본의 데이터에 액세스할 수도 있습니다.

성능을 향상시키기 위해 Microsoft Jet 데이터베이스에서 SQL 통과 쿼리를 더 이상 만들 필요가 없지만 ADOX 및 Jet 공급자를 사용하여 이 작업을 수행할 수 있습니다. 다음 코드에서는 SQL 통과 쿼리를 만드는 방법을 보여줍니다.

참고: 이 문서의 샘플 코드는 ADOX(데이터 정의 언어 및 보안)용 ADO 및 ActiveX 데이터 개체 확장을 모두 사용합니다. 이 코드가 제대로 실행되려면 Visual Basic 편집기 도구 메뉴에서 참조를 클릭하고 다음 두 참조가 선택되어 있는지 확인해야 합니다.

  • Microsoft ActiveX Data Objects 2.1 라이브러리
  • DDL 및 보안용 Microsoft ADO Ext. 2.6

Microsoft에서 제공하는 프로그래밍 예제는 예시를 위한 것일 뿐이며 이와 관련하여 명시적이거나 묵시적인 어떠한 보증도 하지 않습니다. 이는 상품성이나 특정 목적에 대한 적합성의 묵시적인 보증을 포함하며 이에 제한되지 않습니다. 이 문서에서는 예제에 사용되고 있는 프로그래밍 언어와 프로시저를 만들고 디버깅하는 데 사용되는 도구를 사용자가 잘 알고 있는 것으로 가정합니다. Microsoft 지원 엔지니어는 사용자에게 도움이 되도록 특정 프로시저에 대한 기능을 설명할 수 있지만 사용자의 특정 요구 사항에 맞도록 예제를 수정하여 추가 기능을 제공하거나 프로시저를 구성하지는 않습니다. 코드에서 SQL 통과 쿼리를 만들려면 다음 단계를 수행합니다.

  1. 샘플 Northwind 데이터베이스를 엽니다.
  2. 새 모듈을 만든 다음 다음 코드를 입력하거나 붙여넣습니다.
Function CreateSPT(SPTQueryName As String, strSQL As String)

Dim cat As ADOX.Catalog
  Dim cmd As ADODB.Command

Set cat = New ADOX.Catalog
  Set cmd = New ADODB.Command

cat.ActiveConnection = CurrentProject.Connection

Set cmd.ActiveConnection = cat.ActiveConnection

cmd.CommandText = strSQL
  cmd.Properties("Jet OLEDB:ODBC Pass-Through Statement") = True

'Modify the following connection string to reference an existing DSN for 
 'the sample SQL Server PUBS database.

cmd.Properties _
     ("Jet OLEDB:Pass Through Query Connect String") = _
       "ODBC;DSN=myDSN;database=pubs;UID=sa;PWD=;"
  cat.Procedures.Append SPTQueryName, cmd

Set cat = Nothing
  Set cmd = Nothing

End Function

  1. 이 함수를 테스트하려면 직접 실행 창에 다음 줄을 입력한 다음 Enter 키를 누릅니다.

    ? CreateSPT("MySptQuery", "Select * from Authors")