Compartir a través de


Cláusula PROCEDURE (Microsoft Access SQL)

Se aplica a: Access 2013, Office 2013

Define un nombre y parámetros opcionales para una consulta.

Nota:

[!NOTA] La cláusula PROCEDURE ha sido sustituida por la instrucción PROCEDURE. Aunque la cláusula PROCEDURE todavía se admite, la instrucción PROCEDURE proporciona un superconjunto de la capacidad de la cláusula PROCEDURE y es la sintaxis recomendada.

Sintaxis

PROCEDURE nombre [parámetro1 tipoDeDatos[, parámetro2 tipoDeDatos[, …]]

La cláusula PROCEDURE consta de los siguientes elementos:

Parte Descripción
name Un nombre para el procedimiento. Debe seguir las convenciones de nomenclatura estándar.
párametro1, párametro2 Uno o varios nombres de campo o parámetros. Por ejemplo:

PROCEDURE Sales_By_Country [Beginning Date] DateTime, [Ending Date] DateTime;

Para obtener más información sobre los parámetros, vea parámetros.
tipo_datos Uno de los principales tipos de datos de Microsoft Access SQL o sus sinónimos.

Comentarios

Un procedimiento SQL consta de una cláusula PROCEDURE (que especifica el nombre del procedimiento), una lista opcional de definiciones de parámetros y una única instrucción SQL. Por ejemplo, el procedimiento Get_Part_Number podría ejecutar una consulta que recuperase un número de pieza en particular.

Nota:

  • Si la cláusula incluye varias definiciones de campo (pares parámetro-tipoDeDatos), sepárelas mediante comas.
  • La cláusula PROCEDURE debe ir seguida de una instrucción SQL (por ejemplo, una instrucción SELECT o UPDATE).

Ejemplo

En este ejemplo se nombra la consulta CategoryList y llama al procedimiento EnumFields, que puede encontrar en el ejemplo de instrucción SELECT.

    Sub ProcedureX() 
     
        Dim dbs As Database, rst As Recordset 
        Dim qdf As QueryDef, strSql As String 
         
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
         
        strSql = "PROCEDURE CategoryList; " _ 
            & "SELECT DISTINCTROW CategoryName, " _ 
            & "CategoryID FROM Categories " _ 
            & "ORDER BY CategoryName;" 
         
        ' Create a named QueryDef based on the SQL 
        ' statement. 
        Set qdf = dbs.CreateQueryDef("NewQry", strSql) 
     
        ' Create a temporary snapshot-type Recordset. 
        Set rst = qdf.OpenRecordset(dbOpenSnapshot) 
     
        ' Populate the Recordset. 
        rst.MoveLast 
                 
        ' Call EnumFields to print the contents of the  
        ' Recordset. Pass the Recordset object and desired 
        ' field width. 
        EnumFields rst, 15 
         
        ' Delete the QueryDef because this is a 
        ' demonstration. 
        dbs.QueryDefs.Delete "NewQry" 
         
        dbs.Close 
     
    End Sub