1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| Function ExecuteRequeteParametre(NomRequete As String, Params As Variant, ParamsType As String) As dao.Recordset
On Error GoTo Erreur_ExecuteRequeteParametre
dim result as dao.recordser
Dim i As Integer
Dim Requete As QueryDef
Dim RequeteInitiale, RequeteModifiee As String
Set Requete = CurrentDb.QueryDefs(NomRequete)
RequeteInitiale = Requete.sql
Select Case LCase(ParamsType)
Case TYPE_PARAM_STRING
For i = 0 To UBound(Params)
If (i = 0) Then
RequeteModifiee = Replace(RequeteInitiale, "[param" & CStr(i + 1) & "]", "'" & Params(i) & "'")
Else
RequeteModifiee = Replace(RequeteModifiee, "[param" & CStr(i + 1) & "]", "'" & Params(i) & "'")
End If
Next
Case TYPE_PARAM_INT
For i = 0 To UBound(Params)
If (i = 0) Then
RequeteModifiee = Replace(RequeteInitiale, "[param" & CStr(i + 1) & "]", Params(i))
Else
RequeteModifiee = Replace(RequeteModifiee, "[param" & CStr(i + 1) & "]", Params(i))
End If
Next
Case Else
End Select
CurrentDb.QueryDefs(NomRequete).sql = RequeteModifiee
Set result = CurrentDb.OpenRecordset(NomRequete)
CurrentDb.QueryDefs(NomRequete).sql = RequeteInitiale
Set Requete = Nothing
set ExecuteRequeteParametre=result
set result=nothing
Exit Function
Erreur_ExecuteRequeteParametre:
Call GestionErreur(Err, "ExecuteRequeteParametre", "")
End Function |
Partager