Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
allora dal p.v logico non è efficiente fargli inserire tutti i dati per poi controllare se esiste già, sarebbe più efficace prima di fargli iniziare l'inserimento fargli cercare un elemento sufficientemente significativo per discriminare l'anagrafica, ad esempio il numero di telefono oppure una combinazione di Cognome e numero di telefono.
I modi per farlo possono esere vari, te ne propongo uno, una maschera di ricerca in cui dai la possibilità di inserire una o più informazioni e di filtrare i record che soddisfano i ciriteri di ricerca, poi l'operatore deciderà se una delle anagrafiche trovate corrisponde al Cliente che dovrebbe inserire oppure no ed in quel caso creerà una nuova anbagrafica.
Ad esempio supponi di avere una maschera in visualizzazione foglio dati che ha come origine record una istruzione del tipo:Select * FROM Anagrafica where idAnagrafica = 0
supponiamo di mettere in intestazione maschera 2 caselle di testo Cognome e Telefono più 2 bottoni Cerca e Aggiungi
Sul click del bottone cerca si eseguirà:
dim filterstring as string
If not isnull(Cognome) then
filterstring = " Cognome like '" & Cognome & "*' AND "
end if
if not isnull(Telefono) then
filterstring = filterstring & " Telefono = '" & telefono & "' AND "
end if
filterstring = left(filterstring, len(Filterstring) - 5
me.recordSource = "Select * FROM Anagrafica where " & filterstring
me.requery
A questo punto l'operatore vedrà subito se il nominativo inserito è già esistente e se non lo è premerà il pulsante aggiungi che aprirà una maschera per l'inserimento dei dati e che sull'evento caricamento potrebbe copiarsi i campi cognome e telefono inseriti nella maschera precedente
sub Form_load()
if newRecord then
cognome=Forms!ListaAnagrafica!Cognome
telefono=Forms!ListaAnagrafica!Telefono
end if
end sub