General

6.187 Formattazione automatica della stringa di filtro/ricerca nelle proposizioni WHERE
  Bruno Campanini

Come noto, la sintassi del secondo termine di paragone nelle proposizioni WHERE cambia a seconda che esso sia di tipo Testo, Numerido o Data/ora.
L'uso della funzione che segue permette, nelle proposizioni WHERE (e quindi anche nei filtri), di unificare la sintassi usata a prescindere dal tipo dati del secondo termine di paragone.
Le specifiche ed il modo di utilizzo della funzione sono contenuti nelle annotazioni poste in testa alla funzione stessa.

Public Function FSR(SR As Variant) As Variant
'
' Formattazione Stringa di Ricerca.
' Bruno Campanini - 06-04-2005
'
'
' SR può essere Data, Stringa, Numero
' Se SR è Stringa può contenere qualunque carattere,
' inclusi Chr(34) = "   e   Chr(39) = '
'
' La sintassi sarà sempre ed unicamente:
' (Where) "[TableField]=" & FSR(SR)
'
' Occorre tener presente che SR potrà essere scritta
' nella sua forma normale se collocata in un campo di Form.
' Ad esempio:   Trattoria "L'Isola del Tesoro" con alloggio
'
' Qualora venga passata via codice la medesima dovrà essere
' formattata raddoppiando le eventuali virgolette Chr(34) = "
' contenute nel suo interno, indi racchiusa per intero
' entro DUE virgolette. Nel rispetto della convenzione VB.
' Così sarà:   "Trattoria ""L'Isola del Tesoro"" con alloggio"
'
SR = Replace(SR, Chr(34), """ & Chr(34) & """)
If IsDate(SR) Then
    SR = Chr(35) & Format(SR, "mm-dd-yy") & Chr(35)
ElseIf IsNumeric(SR) Then
Else
    SR = Chr(34) & SR & Chr(34)
End If
FSR = SR
End Function
Visto che la funzione di cui sopra usa la funzione intrinseca Replace, potrà essere utilizzata solo con versioni di Access successive ad Access 97.


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.