Cómo usar ADOX para crear una consulta de paso a través SQL en Access

Moderada: Requiere macro básico, codificación y conocimientos de interoperabilidad.

En este artículo sólo se aplica a una base de datos de Microsoft Access (.accdb y .mdb).

Resumen

En este artículo se muestra cómo crear una consulta de paso a través SQL en Microsoft Visual Basic para Aplicaciones (VBA) con Microsoft ActiveX Data Objects (ADO).

Más información

Puede escribir una función en Visual Basic para aplicaciones que crea una consulta de paso a través SQL. Una consulta de paso a través SQL se compone de una instrucción SQL y una cadena de conexión. Cuando ejecuta la consulta, envía comandos directamente al servidor de base de datos para su procesamiento. Esto elimina la sobrecarga que supone el motor de base de datos Microsoft Jet.

Con el modelo de objeto de acceso a datos (DAO), puede utilizar consultas de paso a través SQL para mejorar el rendimiento cuando tiene acceso a datos externos. Con ADO, puede utilizar el proveedor Microsoft OLE DB para SQL Server para tener acceso directo a un SQL Server sin la sobrecarga de Microsoft Jet u ODBC. También puede utilizar el proveedor Microsoft OLE DB para ODBC para tener acceso a datos de cualquier origen de datos ODBC.

Aunque ya no tiene que crear las consultas de paso a través SQL en la base de datos Microsoft Jet para mejorar el rendimiento, puede hacerlo utilizando ADOX y el proveedor Jet. El código siguiente muestra cómo crear una consulta de paso a través SQL.

NOTA: el código de ejemplo en este artículo utiliza ADO y ActiveX Data Objects Extensions para Data Definition Language and Security (ADOX). Para que este código se ejecute correctamente, debe haga clic en referencias en el menú Herramientas en el Editor de Visual Basic y asegúrese de que las dos referencias siguientes están seleccionadas:
Microsoft ActiveX Data Objects 2.1 Library
Microsoft ADO Ext. 2.6 for DDL and Security
Microsoft proporciona ejemplos de programación fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, pero no se limita, a las garantías implícitas de comerciabilidad o idoneidad para un propósito particular. Este artículo asume que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos. Para crear una consulta de paso a través SQL en el código, siga estos pasos:
  1. Abra la base de datos de ejemplo Northwind.
  2. Cree un nuevo módulo y, a continuación, escriba o pegue el código siguiente:
    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

  3. Para probar esta función, escriba la línea siguiente en la ventana Inmediato y presione ENTRAR:
    ?CreateSPT ("MySptQuery", "Select * from Authors")

Referencias

Para obtener más información acerca de las propiedades de OLE DB de Microsoft, visite el siguiente sitio Web de Microsoft MSDN Library:En el árbol de contenido en el panel izquierdo de la biblioteca de MSDN, vaya al siguiente tema de ayuda:
  \Data Access
\Microsoft Data Access Components
\ADO
\SDK Documentation
\Microsoft ActiveX Data Objects (ADO)
\ADO Programmer's Guide
\Section V: Appendixes
\Appendix A: Providers
\Microsoft OLE DB Provider for Microsoft Jet

Propiedades

Id. de artículo: 304323 - Última revisión: 9 ene. 2017 - Revisión: 1

Comentarios