Newsgroup: it.comp.appl.access
Titolo: inserire nuovi record con ricerca preventiva

L'oggetto è poco chiaro ma è quello che desidero poter fare. Mi spiego
meglio.
Faccio il caposala in un reparto ospedaliero e con Access gestisco i
ricoveri. Ho due semplici tabelle: anagrafica e movimento pazienti.
Nella prima (è ovvio) sono inseriti i dati del ricoverato, nella seconda
inserisco i dati relativi ai suoi ricoveri: più di uno in un anno. Ho quindi
una maschera con i dati anagrafici e una sottomaschera che mi elenca
(formato tabella) i dati
relativi ai ricoveri del Tizio.
Fin qui tutto bene. Nella tabella anagrafica ho messo come chiave l'insieme
dei tre campi: nome+cognome+data_nascita per evitare di inserire lo stesso
paziente più volte. Su più di 2500 nominativi non posso ricordare se il Sig.
Giallo è già presente in archivio e quindi dopo aver inserito tutti i dati
in un nuovo record capita che Access si rifiuta di registrarlo dicendomi che
ho tentato di duplicare i campi chiave: il Sig. Giallo evidentemente è già
in archivio.
E' fastidioso inserire tutti i dati e scoprire che li avevi già. Esiste un
modo per verificare la presenza di quel nominativo in archivio, man mano che
si inseriscono i suoi dati?
--
Cordiali saluti
Nunzio Santini

 wrote in message
8c5dkg$p3g$1...@serv1.albacom.net...

Di soluzioni ne esistono molte; te ne suggerisco una che ritengo sia
abbastanza facile da realizzare e che non ti sconvolge quanto già presente
nella tua applicazione.
Preparati una nuova maschera con una casella di riepilogo non associata  a
tre colonne che ti faccia vedere il cognome, il nome e la data di nascita
dei pazienti già in archivio; la maschera conterrà anche due pulsanti, uno
che cliccherai con il mouse nel caso che il paziente non lo hai trovato
listato nella casella di riepilogo e che aprirà la maschera che già oggi
adoperi in modalità immissione dati "Aggiungi", un secondo bottone che
cliccherai se il paziente lo hai trovato listato e lo avrai selezionato con
il mouse; a quest'ulimo pulsante farai aprire la maschera che oggi adoperi
in modalita immissione dati "Modifica", filtrandola con i dati della casella
di riepilogo.
Ciao,  Roberto

si inseriscono i suoi dati?
quello che farei sarebbe utilizzare o una dlookup o un metodo seek
(visto che mi pare di capire che hai una chiave sui tre campi) al
dopoaggiornamento di ciascuno dei tre controlli legati ai campi
chiave, ovviamente se e solo se tutti i campi sono riempiti.
potrebbe darsi che magari chi immette i dati metta prima la nascita,
poi il nome e il cognome, o potrebbe darsi che nel corso
dell'immissione ci si accorga di aver digitato dei valori sbagliati.
allora per sicurezza tutte le volte che si aggiorna un campo e si
hanno informazioni complete per verificare l'eventuale doppio
inserimento si fa questo controllo.
ad esempio:
sub ControllaDoppiaImmissione(NomeBattesimo as string, Cognome as
string, DataNascita as date)
dim rst as recortset
set rst=currentdb.openrecordset("Tabella")
rst.index="PrimaryKey"
rst.seek "=", NomeBattesimo, Cognome, Datanascita
if not rst.nomatch then
	beep
	msgbox "E' gia' stato inserito un paziente con questi dati!"
end if
end sub
da ognuno dei tre controlli la richiamerai nel dopoaggiornamento in
questo modo:
if nz(me.NomeBattesimo, "") <> "" and nz(me.Cognome, "") <> "" and
nz(me.DataNascita, "") <> "" then
	ControllaDoppiaImmissione me.NomeBattesimo, me.Cognome,
me.datanascita
end if
--
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/