Problema Di Omonimia

Anonimo
2011-07-08T13:49:07+00:00

Salve.

Sono nuovo del forum e utilizzo access 2010 per la creazione di piccoli programmi di gestione.

vi ringranzio anticipatamente per la risposta.

dunque il mio problema e legato all'omonimia dove ho :

1 tebella:

Clienti

1 Maschera

InsClienteHome

Nella maschera "InsClinteHome" ho i vari moduli per l'inserimento anagrafo quelli che ci interessano sono:

"Nome"

"Cognome"

ed infine ho un pulsante chiamato "PulOK"

Nella tabella "Clienti" Ci sono le varie colonne associate all'anagrafe nome,cognome, via ecc...

io vorrei praticamente che quando clicco sul pulsante "PulOK" mi va a fare la verifica nella tabella "Clienti" e cerca Eventualmente casi di omonimia e se c'e un cliente omonimo mi dovrebbe uscire un MsgBox dove mi avverte che il clinte e gia stato inserito e quindi non permettendomi l'inserimento di quel cliente

Come posso risolvere il problema?

Cordiali Saluti

Pannullo Ivan

Grazie Anticipatamente

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2011-07-12T19:39:10+00:00

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

La risposta è stata utile?

0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-07-09T17:35:07+00:00

    si cinzia il numero di telefono gia lo prendono ed oltre al numero di cellulare prendono anche informazioni del tipo: via numerocivico ecc... potrei fare come hai detto tu.... pero pensando, potrei fare che quando c'e il caso di omonimia dovrebbe comparirmi un msgbox dove ci sono "vbyesno" e la domanda formulata dovrebbe essere: il cliente e gia presente vuoi continuore con l'inserimento oppure visualizzare l'anagrafica?....

    pero :) non so il codice.... poiche con "visual basic for application" ci smanetto da poco :) poi un altra domanda cinzia, quando metti "me.Cognome" quel "me." cosa sta a significare? :)

    grazie ancora cinzia

    gentilissima

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-07-09T16:06:01+00:00

    Ciao Ivan,

    se la clientele del magazzino è fatta da persone fisiche e quindi non avete obbligo di fattura, ma probabilmente emettete semplicemente scontrino fiscale, puoi ad esempio chiedere il numero di telefono / cellulare  quello in generale dovrebbero ricordarselo e a voi fa comodo averlo, così se dovete contattarli per qualche motivo, avete l'informazione.

    Potresti procedere così, come prima cosa chiedi il numero di cellulare, il programma verifica se esiste già usando la funzione Dlookup, se esite carica la scheda che ha trovato, e l'operatore verifica con il cliente i dati già in archivio, se non lo trova crea una nuova scheda cliente senza ulteriori controlli.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-07-08T22:09:15+00:00

    ciao cianzia e grazie della risposta.

    esetto cmq poi ci ho pensato dopo...

    Ti spiego meglio. questo programma sara utilizzato allo scopo di gestiere le assistenze di un magazino di informatica, quindi sto cercando di costruire un programma alla base della velocita, praticamente il programma dovra essere molto snello....

    l'utente che poi andra ad utilizzare il programma per inserire un cliente deve fare pochissimi passaggi riducendo l'utilizzo del programma stesso..

    quindi facendogli inserire anche il codice fiscale (e molte volte le persone non c'e l'hanno o perche l'hanno perso ecc) serebbe una cosa un pokino lunga.

    come potrei ovviare al problema?

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2011-07-08T21:17:35+00:00

    Ciao Ivan,

    ad esempio sull'evento uscita del campo cognome, potresti inserire una istruzione di questo tipo

    Dim NomeTrovato as string

    trovato =Nz( DlookUp ("Cognome", "Clienti", "Cognome='" & me.Cognome & "' AND Nome='" & Me.Nome & "'"), "")

    if len(trovato) > 0 then

    MsgBox "Attenzione,  " & me.Nome & " " & Me.Cognome & " è già stato inserito

    end if

    C'è da considerare che non basta che il nome e il cognome siano uguali per dire che il cliente è lo stesso, probabilmente va considerato qualche altro dato più univoco,  ad esempio Codice Fiscale o Partita IVA

    La risposta è stata utile?

    0 commenti Nessun commento