Newsgroup: it.comp.appl.access
Titolo: Gestione eventi tra maschere W98/A97

Salve a tutto il NG.
Dopo numerosi e vani tentativi, mi rivolgo a Voi per la soluzione del
seguente quesito.
Ho 2 Tabelle con relative Maschere così costituite:
- Tabella Clienti
IdCliente      Contatore
Cliente         Testo
Indirizzo       Testo
etc.
- Tabella Portafogli
IdPort           Contatore
Cliente          Testo
Titolo            Testo
Quote           Numerico
Valore          Numerico
Ogni tabella ha la chiave primaria su Id.... e la relazione tra le 2 tabelle
è 1:1 tramite campo Cliente.
Ordunque il mio quesito.
Apro la Maschera Portafogli e sul controllo Cliente devo inserire le
seguenti condizioni:
se la variabile digitata è già presente nella Tabella Clienti allora
  messaggio in cui ci informa che si è tentato di duplicare il Cliente
  riporta il focus sul medesimo controllo aspettando una nuova variabile
altrimenti
 apro la Maschera Clienti
 ricopio la variabile digitata nella Maschera Portafogli.Cliente, nella
Maschera Clienti.Cliente
 sposto il focus sul controllo Indirizzo
 quando ho terminato di inserire il record (nuovo cliente), chiudo la
maschera Clienti
mi ritrovo nella Maschera Portafogli col controllo Cliente già completato e
ho il focus sul controllo Titolo
completo il record portafogli...
Scusate eventuale poca chiarezza nell'esposizione succitata, nel qual caso
sarà mia premura rimediare.
Ringrazio tutti coloro che parteciperanno alla soluzione del quesito.
Gianni.

 ha scritto nel messaggio
news:8vd27e$rn2$1...@serv1.albacom.net...

E' bene che tu prenda coscienza che usando questa struttura di tabelle hai
ignorato una delle regole fondamentali dei database relazionali: hai messo
lo stesso dato (campi Cliente) in due tabelle diverse.
Quindi ti consiglio di cambiare la struttura della seconda tabella in:
- Tabella Portafogli
IdPort           Contatore
IdCliente       Numerico
Titolo            Testo
Quote           Numerico
Valore          Numerico
Quindi metti in relazione uno-a-molti (e non uno-a-uno) le due tabelle in
base ai campi IdCliente (penso che sia innegabile che un cliente possa avere
più record nella Tabella Portafogli); aggiungi anche l'integrità
referenziale.
Apri la struttura della Tabella Portafogli e per il campo IdCliente adopera
l'Autocomposizione Ricerca... basandola sulla Tabella Clienti.
Così facendo quando apri la Maschera Portafogli il controllo IdCliente lo
vedrai come una casella combinata; per i record Portafogli già esistenti la
combo porterà il nome del cliente, per i record da inserire adopererai la
combo per selezionare il cliente di quel record.
Per risolvere i problema di inserire clienti nuovi mentre inserisci nuovi
record Portafoglio, a fronte dell'evento "Su non in elenco" della combo
IdCliente genera una routine che apre la Maschera Clienti per l'inserimento
di un nuovo record nella Tabella Clienti, poi fa il requery della casella
combinata e sposta il fuoco sul controllo  Titolo , ovvero:
DoCmd.OpenForm "MascheraClienti", , , , acFormAdd, acDialog, "GotoNew"
    Me![IdCliente].Requery
    Me![Titolo].SetFocus
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------



Grazie Roberto, per il gentile contributo.
Sei sempre molto esauriente nelle spiegazioni.
Gianni.