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 FunctionLa funzione restituisce una variabile booleana di valore True se la ricerca ha dato esito positivo e di valore False in caso contrario. |