Newsgroup: it.comp.appl.access
Titolo: Campi contatore

Ho una maschera Clienti  (IDCliente come contatore) con un pulsante di
comando che apre una maschera Animali (con IDAnimale come contatore e
IDCliente come numerico) in modalità "Immissione dati" impostata a Sì. Le
due maschere (tabelle) sono collegate da una relazione uno a molti. Quando
apro la maschera Animali, il controllo IDCliente della maschera stessa è 0
(zero). Vorrei sapere se è possibile fare in modo che all'apertura della
maschera Animali, il controllo IDCliente riporti lo stesso numero del
controllo IDCliente che appare nella maschera Clienti.
Grazie.
--------------------------------
Inviato via 
http://usenet.iol.it

 Grazie.
Per quello che ci hai raccontato sembrerebbe che tu aggiorni le due tabelle
in maniera autonoma, con due maschere slegate tra di loro, forse solamente
sincronizzate.
Normalmente l'aggiornamento di due tabelle in relazione tra di loro
uno-a-molti, come sono quelle del tuo caso, viene effettuato con la tecnica
di maschera/sottomaschera.
Ovvero fai in maniera che la tua maschera Animali sia di tipo tabellare
(visaualizzazione a Maschere continue).
Quindi nell'attuale tua maschera Clienti elimina il pulsante di controllo e
inserisci un controllo sottomaschera che deve avere come Oggetto origine la
tua maschera Animali e come Collega campi secondari e Collega campi master
IDCLiente.
Così facendo, quando aprirai la maschera Clienti, nella sottomaschera in
essa contenuta ti compariranno automaticamente tutti gli animali di quel
cliente, e quando inserirai un nuovo animale Access compilerà autonomamente
l'IDCliente del record Animali rilevandolo appunto da quello del record
corrente della maschera principale.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

---------------------------------------------
Ti ringrazio per la
risposta. Ma forse non ti ho detto tutto. Infatti la mia maschera Animali
apre a sua volta una maschera Scheda tramite un pulsante di comando. Se
faccio come dici Tu, come posso poi aprire la maschera Scheda che è
collegata a quella Animali da una relazione uno a uno ?
Grazie
Franco (neofita alle prime armi).


 ha scritto nel messaggio
news:151Z29Z209Z24Y...@usenet.iol.it...

Intanto le relazioni (uno-a-uno, uno-a-molti o molti-a-molti) sono tra
tabelle e non tra maschere.
Quindi, eventualmente, avrai un'altra tabella che è collegata uno-a-uno con
la tabella Animali.
E se oggi con un pulsante di comando apri una maschera Scheda sincronizzata
alla maschera Animali, chi ti vieta di continuarlo a fare anche nella
soluzione che ti ho proposto?
Secondo me ti conviene prima provare ed eventualmente poi dire cosa non ti
funziona.


---------------------------------------------
Ok sulla questione
relazioni tra tabelle.
- tabella Clienti (IDCliente contatore)
- tabella
Animali (IDAnimale contatore, IDCLiente numerico)
- tabella Scheda
(IdAnimale numerico)
- relazione uno a molti tra tab.Clienti e tab.Animali
- relazione uno a uno tra tab.Animali e tab.Scheda
OK sulla questione
maschera+sottomaschera
Quello che mi serve è un pulsante che mi apra la
maschera Scheda relativa al record selezionato nella sottomaschera Animali,
in modo da poter aggiungere o modificare i dati presenti nella maschera
Scheda.
Grazie per la tua pazienza e spero comprensione.
Franco



Ipotizzando che nella maschera Animali il controllo associato al campo
IDAnimale di tabAnimali si chiami anche lui IDAnimale, inserisci nella
maschera Animali un pulsante di comando: a fronte dell'evento "Su clic" del
pulsante di comando genera il seguente codice VBA:
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "Scheda"
    stLinkCriteria = "[IDAnimale]=" & Me![IDAnimale]
    DoCmd.OpenForm stDocName, , , stLinkCriteria
Se il pulsante di comando lo crei con l'Autocomposizione controllo, e
rispondi correttamente alle domande che ti pone il wizard di
autocomposizione, il codice VBA di cui sopra te lo crea automaticamente
Access.
Una curiosità: perchè i dati contenuti in tabScheda non li metti in
tabAnimali, così ti levi tutti i dolori di pancia di una gestione di due
tabelle in relazione uno-a-uno?
Volendo puoi lasciare l'architettura delle maschere così come l'hai decisa,
oppure modifichi anche la maschera Animali inserendoci anche i controlli
della maschera Scheda; eviti così anche tutte le complicanze di tenere
sincronizzate le maschere Animali e Scheda.
--
Roberto


---------------------------------------------
Ho bisogno di riordinare
un poco le idee :-(
Toglimi però questa curiosità: poniamo che mi vada
bene  la struttura maschera Clienti con sottomaschera Animali; il pulsante
che mi apre la maschera Scheda lo devo inserire per forza nella maschera
Clienti in quanto non sono mai riuscito ad inserirlo nella sottomaschera
Animali. Il codice VBA che mi hai proposto non dovrebbe andar bene o
sbaglio ? Inoltre come faccio a dirgli che deve aprirmi la maschera Scheda
relativa al record selezionato nella sottomaschera Animali ?
Grazie.



Il codice che ti ho suggerito puň funzionare SOLO a condizione che tu
inserisca il pulsante di comando nella sottomaschera Animali.
Non riesco proprio a capire cosa ti impedisca di inserire un pulsante di
comando nel corpo della sottomaschera Animali.



Il codice che ti ho suggerito puň funzionare SOLO a condizione che tu
inserisca il pulsante di comando nella sottomaschera Animali.
Non riesco proprio a capire cosa ti impedisca di inserire un pulsante di
comando nel corpo della sottomaschera Animali.
--



Il codice che ti ho suggerito puň funzionare SOLO a condizione che tu
inserisca il pulsante di comando nella sottomaschera Animali.
Non riesco proprio a capire cosa ti impedisca di inserire un pulsante di
comando nel corpo della sottomaschera Animali.
--


---------------------------------------------
Riesco ad inserire il
pulsante solo se la sottomaschera è in formato Tabulare, ma non ci riesco
nel formato Foglio dati.
Sai cosa ho fatto? Ho inserito il codice VBA che
mia hai proposto nell'evento SU click del controllo iDAnimale della
sottomaschera Animali in formato Foglio dati. In questo modo quando clicco
sul controllo IDAnimale si apre la maschera Scheda (....devo essere proprio
impazzito! :-)


 impazzito! :-)
Perché impazzito? E' comunque una soluzione.
Forse però è meglio che scegli l'evento "Su doppio clic" anziché quello "Su
clic", forse ti creerà meno fastidi.


---------------------------------------------
Grazie per la risposta
(... non ci speravo!)
Comunque mi rimane sempre il problema con cui
eravamo partiti all'inizio e che voglio riproporti in modo più esplicito:
mettiamo che io voglia mantenere le tre maschere separate (mClienti,
mAnimali, mScheda). Quando inserisco un "nuovo record" nella mClienti ho un
determinato IDCliente mettiamo uguale a 3 (contatore); quando apro la
mAnimali il controllo IdCliente della stessa maschera è uguale a 0 (zero);
se io non introduco manualmente il valore 3 in questo controllo, non posso
salvare il nuovo record nella mAnimali. 
Chiedo: è possibile fare in modo
che all'apertura della mAnimali tramite un pulsante di comando il controllo
IDCliente della stessa venga impostato automaticamente uguale a quello
presente nel controllo IDCliente della mClienti (cioè uguale a 3) ?
La
ruotine che mi hai indicato funziona solo se io imposto manualmente
l'IDCliente della mAnimali uguale all'IDCliente della mClienti.
Grazie
mille
Franco (...il veterinario).


 Franco (...il veterinario).


---------------------------------------------
Provo per curiosità e ti
faccio sapere. Sto comunque riscrivendo il programma sulla base dei tuoi
suggerimenti.
Grazie.



OK, a presto.





Per quanto riguarda il
mio data base, esso si basa per il momento solo sulle tre tabelle che di ho
detto (tClienti, tAnimali, tScheda).
La maschera scheda però è molto
grande (occupa tutto lo schermo) in quanto contiene molti controlli (è in
pratica una scheda clinica). Per questo motivo mi riesce difficile
raggruppare tutti i controlli nella tabella Animali, più che altro per un
motivo estetico.
Attualmente stavo tentando la soluzione maschera Clienti
con sottomaschera Animali, cercando di aprire la maschera Scheda con la
routine VBA che mi avevi indicato, inserendola nella proprietà evento su
Doppio click del campo IDAnimale della sottomaschera Animali in
visualizzazione Foglio dati. Ho poi inserito nel controllo IDAnimale della
maschera Scheda l'espressione:
=[Forms]![SottomascheraAnimali]![IDAnimale]
Purtroppo però quando apro la
maschera Scheda, nel campo IDAnimale di questa appare la scritta: #Nome?
Cosa sara mai?
Grazie.
Franco .....l'incorreggibile!
PS. Se riesco a
sistemare questa faccenda, vorrei ampliare il DBase con una parte dedicata
alla fatturazione( Roberto permettendo!)





Per quanto riguarda il
mio data base, esso si basa per il momento solo sulle tre tabelle che di ho
detto (tClienti, tAnimali, tScheda).
La maschera scheda però è molto
grande (occupa tutto lo schermo) in quanto contiene molti controlli (è in
pratica una scheda clinica). Per questo motivo mi riesce difficile
raggruppare tutti i controlli nella tabella Animali, più che altro per un
motivo estetico.
Attualmente stavo tentando la soluzione maschera Clienti
con sottomaschera Animali, cercando di aprire la maschera Scheda con la
routine VBA che mi avevi indicato, inserendola nella proprietà evento su
Doppio click del campo IDAnimale della sottomaschera Animali in
visualizzazione Foglio dati. Ho poi inserito nel controllo IDAnimale della
maschera Scheda l'espressione:
=[Forms]![SottomascheraAnimali]![IDAnimale]
Purtroppo però quando apro la
maschera Scheda, nel campo IDAnimale di questa appare la scritta: #Nome?
Cosa sara mai?
Grazie.
Franco .....l'incorreggibile!
PS. Se riesco a
sistemare questa faccenda, vorrei ampliare il DBase con una parte dedicata
alla fatturazione( Roberto permettendo!)
--------------------------------
Inviato via 
http://usenet.iol.it
 


--


---------------------------------------------
--------------------------------
Inviato via 
http://usenet.iol.it
 

 Franco
--
Roberto
