Forms

3.107 Ricerca duplicati
  Alessandro Baraldi

Questa funzione consente di verificare se un record è già presente effettuando una verifica per CRITERIO.
Non uso le funzioni di aggregazione sui dominii DCOUNT o DLOOKUP per motivi di prestazioni: risulta estremamente più veloce interrogare il recordset in questo modo piuttosto che ricorrere alla funzione nativa.

L'utilizzo è semplice, occorre solo passare alla funzione alcuni parametri:

[Campo] =Nome del campo da usare per la ricerca.
[Tabella] =Nome della tabella/query nella quale cercare
[Confronto] =Valore da usare nel criterio di ricerca (non occorre passare formattazioni di tipo stringa o data o altro, solo il valore).
[Tipo] =Esplicita il TIPO di dato da Formattare solitamente è opportuno passare una costante già riconosciuta da Access, contenuta nell'elenco TYPE sottoriportato e ben dettagliato nell'Help

ELENCO COSTANTI PER TIPO DATI
dbBigInt
dbBinary
dbBoolean
dbByte
dbChar
dbCurrency
dbDate
dbDecimal
dbDouble
dbFloat
dbGUID
dbInteger
dbLong
dbLongBinary
dbMemo
dbNumeric
dbSingle
dbText
dbTime
dbTimeStamp
dbVarBinar

Public Function GetDuplicato(Campo As String, _
                             Tabella As String, _
                             Confronto As String, _
                             Tipo) As boolean
   Dim strCriteria As String
   Dim rs As DAO.Recordset
   strCriteria = "SELECT COUNT(*) as Duplicati FROM " & Tabella & " WHERE "
   strCriteria = strCriteria & BuildCriteria(Campo, Tipo, Confronto)
   Set rs = CurrentDb.Openrecordset(strCriteria)
   GetDuplicato = (rs.Fields("Duplicati") <> 0)
   rs.Close
   Set rs = Nothing
End Function
La funzione restituisce una variabile booleana di valore True se la ricerca ha dato esito positivo e di valore False in caso contrario.


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