QuesryParam



Public Sub CreateSQL(sTemplate As String, ParamArray vaArg() As Variant)
Dim sSQL As String, sCMD1 As String, sCMD2 As String
Dim iArg As Integer, nPos As Integer
' Template vuoto, esci !!

If Trim(sTemplate) = "" Then
Exit Sub
End If
' Crea la stringa sql come specificato, se ad esempio

' sTemplate="SELECT * FROM CLIENTI WHERE NOME LIKE '^*' ORDER BY ^"

' richiamando la funzione con

' sResult=CreateSQL(sTemplate, "ROS", "CODICE")

' si otterra' come risultato in sResult la stringa

' "SELECT * FROM CLIENTI WHERE NOME LIKE 'ROS*' ORDER BY CODICE"

' la funzione e' molto comoda per sostituire le queries

' parametriche e per creare queries dinamiche "al volo"

sSQL = sTemplate
nPos = 1
For iArg = LBound(vaArg) To UBound(vaArg)
nPos = InStr(nPos, sSQL, "^")
If nPos > 0 Then
sCMD1 = Mid(sSQL, 1, nPos - 1) & vaArg(iArg)
sCMD2 = Mid(sSQL, nPos + 1)
nPos = Len(sCMD1) + 1
sSQL = sCMD1 & sCMD2
Else
Exit For
End If
Next iArg
' ritorna il risultato

sTemplate = sSQL
End Sub


(quesryparam.html)- by Paolo Puglisi - Modifica del 25/3/2019