Parameter.Direction, propriété (DAO)
S’applique à : Access 2013, Office 2013
Syntaxe
expression . Direction
Expression Variable qui représente un objet Parameter .
Remarques
Le paramètre ou la valeur de retour est une valeur longue pouvant être définie sur l'une des constantes ParameterDirectionEnum.
La propriété Direction permet de déterminer si le paramètre est un paramètre d'entrée, de sortie, ou les deux, ou la valeur de retour de la procédure. Certains pilotes ODBC ne fournissent aucune information sur la direction des paramètres vers une instruction SELECT ou une invocation de procédure. Dans ce cas, il convient de définir la direction avant d'exécuter la requête.
Par exemple, la procédure suivante renvoie une valeur d'une procédure stockée appelée « get_employees » :
{? = appel get_employees}
Cet appel produit un paramètre : la valeur de retour. Vous devez définir la direction de ce paramètre sur dbParamOutput ou dbParamReturnValue avant d'exécuter l'objet QueryDef.
Vous devez définir toutes les directions de paramètre sauf dbParamInput avant d'accéder aux valeurs des paramètres ou de les définir et avant d'exécuter l'objet QueryDef.
Utilisez dbParamReturnValue pour les valeurs de retour, mais dans les cas où cette option n'est pas prise en charge par le pilote ou le serveur, utilisez plutôt dbParamOutput.
Le pilote Microsoft SQL Server définit automatiquement la propriété Direction pour tous les paramètres de procédure. Certains pilotes ODBC ne peuvent pas déterminer la direction d'un paramètre de requête. Dans ce cas, il convient de définir la direction avant d'exécuter la requête.
Exemple
Cet exemple utilise la propriété Direction pour configurer les paramètres d'une requête sur une source de données ODBC.
Sub DirectionX()
Dim wrkMain As Workspace
Dim conMain As Connection
Dim qdfTemp As QueryDef
Dim rstTemp As Recordset
Dim strSQL As String
Dim intLoop As Integer
' Create ODBC workspace and open a connection to a
' Microsoft SQL Server database.
Set wrkMain = CreateWorkspace("ODBCWorkspace", _
"admin", "", dbUseODBC)
' Note: The DSN referenced below must be configured to
' use Microsoft Windows NT Authentication Mode to
' authorize user access to the Microsoft SQL Server.
Set conMain = wrkMain.OpenConnection("Publishers", _
dbDriverNoPrompt, False, _
"ODBC;DATABASE=pubs;DSN=Publishers")
' Set SQL string to call the stored procedure
' getempsperjob.
strSQL = "{ call getempsperjob (?, ?) }"
Set qdfTemp = conMain.CreateQueryDef("", strSQL)
With qdfTemp
' Indicate that the two query parameters will only
' pass information to the stored procedure.
.Parameters(0).Direction = dbParamInput
.Parameters(1).Direction = dbParamInput
' Assign initial parameter values.
.Parameters(0) = "0877"
.Parameters(1) = 0
Set rstTemp = .OpenRecordset()
With rstTemp
' Loop through all valid values for the second
' parameter. For each value, requery the recordset
' to obtain the correct results and then print out
' the contents of the recordset.
For intLoop = 1 To 14
qdfTemp.Parameters(1) = intLoop
.Requery
Debug.Print "Publisher = " & _
qdfTemp.Parameters(0) & _
", job = " & intLoop
Do While Not .EOF
Debug.Print , .Fields(0), .Fields(1)
.MoveNext
Loop
Next intLoop
.Close
End With
End With
conMain.Close
wrkMain.Close
End Sub