Newsgroup: it.comp.appl.access
Titolo: Casella comb. per ricerca dati

Ho già scritto in passato, per questo problema e mi è stato già risposto;
purtroppo non ho risolto, la colpa è la mia perché non sono stato in grado
di spiegarvi in maniera corretta la problematica........ci riprovo!
Ho creato una piccola procedura per l'archiviazione di cartelle cliniche.
Nel momento in cui si apre la schermata dell'anagrafica mi compare una
maschera con una casella combinata al campo "cognome" dell'anagrafica.
Ed è qui che nascono i problemi:
- Vorrei che, nel momento in cui digito il nome di un paziente, se è
presente in anagrafica, tramite un pulsante mi faccia apparire la scheda di
quel paziente (non ci riesco). Se esistono due cognomi uguali come posso
risolvere?
- Se il paziente non compare in anagrafica vorrei che pigiando in un
pulsante (anche se diverso non importa) mi faccia apparire una nuova scheda
paziente che riporti il nome del paziente nell'apposito campo cognome.
Spero di essere stato più chiaro che in passato.
Cordiali saluti e buona domenica.
Roberto
Ho già scritto in passato, per questo problema e mi è stato già risposto;
purtroppo non ho risolto, la colpa è la mia perché non sono stato in grado
di spiegarvi in maniera corretta la problematica........ci riprovo!
Ho creato una piccola procedura per l'archiviazione di cartelle cliniche.
Nel momento in cui si apre la schermata dell'anagrafica mi compare una
maschera con una casella combinata al campo "cognome" dell'anagrafica.
Ed è qui che nascono i problemi:
- Vorrei che, nel momento in cui digito il nome di un paziente, se è
presente in anagrafica, tramite un pulsante mi faccia apparire la scheda di
quel paziente (non ci riesco). Se esistono due cognomi uguali come posso
risolvere?
- Se il paziente non compare in anagrafica vorrei che pigiando in un
pulsante (anche se diverso non importa) mi faccia apparire una nuova scheda
paziente che riporti il nome del paziente nell'apposito campo cognome.
Spero di essere stato più chiaro che in passato.
Cordiali saluti e buona domenica.
Roberto

 Roberto
Forse il problema è solo apparente. Supponendo che la chiave primaria con
indice univoco della tabella Anagrafica si chiami IDPaziente e che questo
controllo sia presente nella maschera anagrafica, la combo della maschera di
ricerca deve avere la colonna associata a IDPaziente con la larghezza
impostata a zero. La combo si alimenta da una tabella o query che avrà nella
prima colonna l'IDPaziente e nella colonne successive il Cognome, il Nome,
la Data di Nascita e/o la Data di Ricovero. Quest'aggiunta di colonne è
importante per capire bene a quale paziente ci si riferisca in caso di
omonimia. Imposterai la larghezza colonne a 0;4;3;2 e la colonna associata a
1 e il numero di colonne a 4 o 5 a seconda di quante colonne userai.
Sull'evento click della combo:
Private Sub Combo_Click()
    On Error Resume Next
   Forms![Anagrafica]!IDPaziente.SetFocus
    DoCmd.FindRecord Forms!MascheraRicerca!Combo, , , , True
    'qui scrivi altro codice che ti serve.
End Sub
Questa è una delle possibili strade, vedi un po tu.
Ciao, Carlo


(Ti è scappato un CTRL-V)
Ci sono molte possibili strade. Una possibile è la seguente: toglierei la
combo da cognome, aspetterei che l'utente abbia digitato nome e cognome e a
fronte dell'evento BeforeUpdate (ma credo che possa andare bene anche
AfterUpdate) del controllo cognome (immaginando che venga dopo il controllo
nome), metterei un po' di codice che sostanzialmente fa questo:
Private Sub cognome_BeforeUpdate(mi pare ci sia una variabile Cancel)
    'Controllo con un DCount la presenza di altri record nell'anagrafica con
lo stesso nome e lo stesso cognome
    'Nel caso il DCount sia 0 non faccio nulla. Non ho trovato nessun
paziente con lo stesso nome e lo stesso cognome
    'Nel caso il DCount sia > 0 apro una bella maschera con i risultati
della ricerca e tramite un pulsantino nella nuova maschera permetto
all'utente di sceglierne 1 (o fare Annulla)
    'Ricordati nel caso l'utente decidesse di importare un vecchio paziente
di fare un Undo sulla maschera anagrafica, perchè altrimenti ti salvi anche
il paziente parzialmente inserito.
End Sub
Per rendere più robusta la soluzione aggiungerei lo stesso codice al
controllo nome controllando però preventivamente (in entrambe le porzioni di
codice) che il valore dell'altro controllo non sia null.
Bye
giaconet

 > presente in anagrafica, tramite un pulsante mi faccia apparire la scheda
Ora digitando il cognome di un paziente: se è presente in archivio la
casella combinata tenterà di completare il cognome mostrandoti anche il nome
e la data di nascita (puoi aiutarti anche aprendo la casella combinata), se
il paziente non è presente questo non accadrà.
Se è presente, premi invio e ti si aprirà la scheda del paziente cercato,
altrimenti premi esci ( per annullare l'immissione nella casella combinata)
e premi il pulsante nuovo record per inserire i dati del nuovo
paziente.Quest'ultimo passaggio è molto grezzo, ma per iniziare basta.
Possibili migliorie si possono apportare con l'evento Non in elenco. Intanto
prova così.
Sei un Caposala? Io lavoro in Direzione Sanitaria e ho affrontato questi
problemi.
Ciao
NSantini