Newsgroup: it.comp.appl.access
Titolo: Nuovo record su campo vuoto

Buongiorno a tutti, ho il seguente problema:
ho due tabelle 1° anagrafica 2° dati aggiuntivi.
la relazione avviene tra il campo "ragionesociale" in entrambe le tabelle, 
inserita manualmente.
Il problema sta quando provo ad aggiungere un dato aggiuntivo la maschera si 
resetta quindi anche la ragione sociale e devo inserirla a mano e in modo 
preciso altrimenti si perde la relazione. E' possibile aggiungere un comando 
al pulsante "nuovo record" che in automatico copi la ragione sociale dalla 
maschera attuale e me la reinserisca manualmente dopo la pressione del tasto 
aggiungi record?
Scausatemi se sono domande magari stupide o terra terra sto cercando di 
riuscirci come posso.
Grazie mille, Filippo. 

Filippo ha scritto:

anzitutto non devi usare un campo testo come relazione ma devi usare un
campo contatore nella prima tabella e metterlo anche nella seconda come
campo numerico
poi basta fare due maschere e correllarle con il campo contatore
il resto va da sè
ciao
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio 
news:g4vg2i$9c9$1...@news.newsland.it...

Grazie, la relazione deve essere uno a molti vero? io attualmente la ricerca 
la facevo in questo modo: 
[ragione_sociale]=[Maschere]![Anagrafica]![ragione_sociale]    era una 
alternativa vero? poi come farò la ricerca dei dati aggiuntivi dalla 
maschera anagrafica?
Grazie ancora. 

Filippo ha scritto:

la relazione deve essere uno a molti e l'indice del campo contattore della
seconda tabella deve essere a "duplicati ammessi"
la ricerca la fai sempre per ragione sociale, come prima, ma il risultato
te lo da access in base ai due campi correllati ealla richiesta che fai tu
nella ragione sociale


 ha scritto nel messaggio 
news:g4vgla$ci8$1...@news.newsland.it...

Ok un' ultima cosa; nella tabella anagrafica creo un campo contatore che va 
avanti progressivamente per conto suo e sarà la chiave primaria, nella 
tabella dei dati aggiuntivi devo creare un altro campo contatore?? non mi è 
chiara questa cosa. Scusami. 

Filippo ha scritto:

nella tabella secondaria crei un campo numerico che servirà per il tuo
collegamento con il campo di tipo contatore della tabella principale
ma crea anche un secondo campo di tipo contatore nella tabella secondaria
che chiamerai per esempio id_secondario
tutte le tabelle è buona cosa che abbiano un campo di tipo contatore che
serve come chiave primaria, ricordalo


 ha scritto nel messaggio 
news:g4vhj3$hq6$1...@news.newsland.it...

E' tutto chiaro, ci provo subito, solamente un piccolo dubbio sul campo 
numerico della seconda tabella (che servirà per la relazione con il 
contatore della prima tabella) devo editarlo io o come si genera l'id uguale 
al contatore della prima tabella? 

Filippo ha scritto:

se usi le maschere, io spero e credo, basta mettere nei campi master e
secondari il nome del campo di tipo contatore della maschera principale ed
il relativo campo secondario ne campi secondari


 ha scritto nel messaggio 
news:g4vnt2$m13$1...@news.newsland.it...

Forse ho fatto confusione, mi spigo meglio: 2 tabelle: tabella 1 anagrafica, 
tabella 2 altri dati.
Maschera anagrafica dove ho i dati principali poi pulsante "visualizza dati 
secondari". Alla pressione del pulsante mi apre la sottomaschera "altri 
dati". Io vorrei: 1° premendo visualizza dati aggiuntivi vedere i soli dati 
relativi a quel record e fin qui ok 2° poter aggiungere "dati aggiuntivi" 
nella seconda tabella relativi al record aperto nella maschera 1. Quando 
faccio nuovo record devo aver fatto precedentemente copia e reincollare la 
ragione sociale altrimenti è come se popolassi la seconda tabella senza 
nessun collegamento con la prima.
Grazie. 


Ciao Filippo, un parere: io nn userei il campo contatore di Access, ma un campo numerico che incrementerei da codice. L'idea è che tu abbia 2 tabelle unite con una relazione 1 a molti. La tabella Padre contiene, diciamo, l'intestazione del documento, la tabella figlio le righe. Esempio: se dovessi fare una fattura di vendita, avresti : 
PADRE
NumFattura (chiave primaria)
Intestazione
Varie cose
FIGLIO
NumFattura (collegato a PADRE)
Varie cose
Quando tu crei una maschera con sottomaschera per visualizzare il tutto, succede che la maschera principale contiene quello che ho definito PADRE e la sottomaschera il figlio. Nei campi master e secondari (finestra proprietà della sottomaschera) devi imporre quali sono i campi a cui Access deve riferirsi per collegare i due oggetti: MASTER (NumFattura PADRE), secondari (NumFattura figlio). Ora le due maschere sono collegate. Quando fai un'inserimento nn c'è bisogno che duplichi la ragione sociale (è già nel PADRE): è suff che ripeti il NumFattura e le due cose sono già collegate. Se all'inizio uso la composizione guidata per creare la sottomaschera, Access ti aiuta a fare tutto. Per inserire un nuovo record devi imporre che il NumFattura sia il medesimi del PADRE.
Spero di essere stato chiaro
Ciao
 
-- 
Questo articolo e` stato inviato dal sito web 
http://www.nonsolonews.it

 ha scritto nel messaggio
news:g50mu4$2qv$1...@news.nonsolonews.it...

Sei stato chiarissimo Fair e ti ringrazio.
Nel caso fatture ripeterei il numero fattura, nel caso di una anagrafica
ripeto l'id esatto? Quello che vorrei capire ulteriormente è se quando mi
trovo in anagrafica e sto inserendo i dati: Nome, cognome, poi premo altri
dati per aggiungerli devo inserire a mano l'id del record? Non è possibile
fare in modo che se sto già visualizzando il record "pippo" quando premo
dati aggiuntivi lui li leghi automaticamente a pippo?
Grazie tante.

 - Mostra testo citato
Sempre dal basso della mia 'gnoranza:
1) in openform utilizzi openargs (vedi guida online)
2) metti nel valore predefinito della chiave esterna nella maschera
secondaria forms![nomemascheraprincipale.[nomecontrollochiave]
3) invece che una maschera scollegata, utilizzi una sottomaschera
(magari con uan struttura a schede e colleghi i campi chiave (te lo
chiede la procedura guidata quale sia la relazione))
F.


[RISPOSTA]
Aspetta un attimo! Se devi aggiungere al tre 'righe' alla 'fattura' 3, ogni riga deve avere nelcampo di collegamento 3. Esempio: Se Girolamo Taddei ha un campi chiave primaria = 7, quando tu premi 'AltriDati' devi impostare il campo di collegamento a 7 (lo fai con OpenArgs, oppure con la formula Forms!TuaSottomaschera.form!TuoCampo.value = tuovalore applicata al bottone che premi, o lo richiami dalla routine di apertura della sottomaschera). In verità tu nn devi pensare di collegare le maschere, ma di scrivere dati consistenti nelle TABELLE in modo che le maschere poi possano visualizzarli in modo corretto.


 ha scritto nel messaggio 
news:g521er$f0c$1...@news.nonsolonews.it...

Esatto hai individuato perfettamente è quello che volevo capire e che mi 
serve.
Se l'utente "Taddei" ha id 7, quando premo il pulsante "altri dati" mi si 
aprirà la maschera contenenti gli altri dati e avrà riferimento all'id 7. 
Quando però premo su nuovo record della stessa maschera (altri dati) 
dovrebbe in automatico scrivermi l'id di riferimento ovvero il 7. Ho 
problema a realizzazare questo automatismo.
Ti ringrazio. 

Filippo ha scritto:

Io userei uno di questi 2 metodi: o metti (nella sottomaschera) una routine sull'evento 'corrente' impostata a
if me.newrecord then
TuoCampo = forms!NomeMascheraPadre.CampoId.value
end if
in modo che, senza bottoni ma con solo la barra di navigazione di Access quando premi la freccettina/asterisco la routine viene lanciata (ti crea una nuova riga con l'ID corretto) o alla pressione del tuo bottone crei una maschera nn associata con tutti i campi che ti servono (impostando ovviamente l'ID corretto e mettendo la sua casella come BLOCCATA e NON ABILITATA), li riempi e poi, con un altro bottone, esegui una query di accodamento. Io personalmente uso sempre il secondo metodo perchèè posso controllare meglio gli inserimenti. Naturalmente il primo è più veloce.... 
