Salvare Voci di Record in due tabelle diverse

Non sapete dove scrivere? Scrivete qui!
Regole del forum
Solo richieste di aiuto. Per saluti e presentazioni utilizzate il forum Discussioni Generali e Presentazioni.
Rispondi
pinoZoe
Messaggi: 8
Iscritto il: venerdì 13 ottobre 2017, 15:42

Salvare Voci di Record in due tabelle diverse

Messaggio da pinoZoe »

Innanzitutto... un mare di scuse se sbaglio qualcosa, invio, argomenti o che altro: non sono nuovo del forum... ma NUOVISSIMO di ogni tipo di forum!
Il mio problema è questo (spero di averlo riportato chiaramente...): non è la finalità ultima del mio lavoro, però ho creato un database semplificato perché vorrei capire come ottenere un risultato che non riesco. Il database è composto di due tabelle: 'nomi' e 'città'. Nella tabella 'nomi' ho inserito i campi 'nomi' e 'città' (di residenza). Ho fatto un formulario guidato contenente il campo 'nomi' della tabella 'nomi', il campo 'città'(città di residenza in questo caso) della stessa tabella 'nomi' e il campo 'città' della tabella 'città'. Il campo 'città' del formulario l'ho costruito con una 'comboBox' che punta ai valori (non so se si dica così) della tabella 'città'. Riesco a salvare nella tabella 'nomi' nei record nuovi i valori di testo differenti che voglio, per intenderci i vari nomi e le città di residenza selezionandoli dalla 'combobox' che mostra i valori salvati precedentemente nella tabella 'città'. Se però, mentre salvo un nuovo record nel formulario, contenete il nome e la città di residenza, la quale è nuova e non è ancora presente nella tabella 'città', mi rimane nella 'combobox' del formulario, ma non riesco a farla salvare nella tabella 'città'. Chiedo cortesemente: cosa sbaglio per ottenere un risultato del genere? Sempre ammesso che si possa fare. Grazie. Cordiali saluti. Allego esempio del file per maggiore comprensione
Allegati
prova4.odb
(12.74 KiB) Scaricato 191 volte
OpenOffice 4.1
Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Salvare Voci di Record in due tabelle diverse

Messaggio da charlie »

Ciao e benvenuto sul forum.
Se intanto ti vuoi presentare puoi farlo qui: viewforum.php?f=16
Per una panoramica delle regole consulta il Manuale di sopravvivenza.
Buon proseguimento.

Non sono chiare le finalità del tuo formulario, serve ad inserire e correggere nuovi nomi? Scegliendo le città da un elenco precostituito ma modificabile?
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
pinoZoe
Messaggi: 8
Iscritto il: venerdì 13 ottobre 2017, 15:42

Re: Salvare Voci di Record in due tabelle diverse

Messaggio da pinoZoe »

Leggendo la tua risposta così com'è scritta credo che tu abbia centrato in pieno il problema:
proprio così...
serve ad inserire e correggere nuovi nomi, scegliendo le città da un elenco precostituito ma modificabile!
Mi hai tolto le parole di bocca!
tutt'al più aggiungerei: 'elenco modificabile ma sempre dal Formulario' iniziale dove i dati principali riguardano il 'nome' ma nello stesso formulario deve comparire (possibilmente nella riga alta di una 'comboBox' con scelte), anche la città associata a quel nome, e se inserisco un nuovo nome 'residente' in una cittù che non compare nell'elenco, vorrei poterla scrivere nella 'comboBox' facendo in modo che però si memorizzi anche nella tabella 'città'. Grazie

P.s. nel frattempo ho fatto ancora dei tentativi e così come l'ho strutturato nell'esempio, io riesco a ritrovarmi l'elenco delle città memorizzate, comprese quelle che aggiungo dal formulario nella 'comboBox', solo che quelle che APPUNTO aggiungo dal formulario 'nomi+città', non riesco a farle memorizzare nella tabella 'città'. Per cui poi in un Record nuovo del formulario che vado a compilare, metto un nuovo Nome, posso mettere una nuova Città, che comparirà nella comboBox successivamente, ma questo non mi permette di far sì che questa nuova Città vada anche nella tabella 'città.
OpenOffice 4.1
Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Salvare Voci di Record in due tabelle diverse

Messaggio da charlie »

A cosa ti servono due tabelle che contengono entrambe gli stessi dati? (relativamente alle città, intendo).
Fai un solo formulario su una sola tabella, come nell'esempio modificato.
Allegati
prova4_1.odb
(20.84 KiB) Scaricato 202 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
pinoZoe
Messaggi: 8
Iscritto il: venerdì 13 ottobre 2017, 15:42

Re: Salvare Voci di Record in due tabelle diverse

Messaggio da pinoZoe »

...pensavo di essermi fatto capire sufficientemente, soprattutto dopo le tue risposte, ma evidentemente non riesco a spiegarmi. Le due tabelle non contengono gli stessi dati. La tabella 'nomi' contiene i campi: ID (naturalmente) e nomi e città perché rappresenterebbe una sorta di anagrafica molto semplificata con i dati (in questo caso solo i nomi, ma si potrebbero aggiungere altri campi) delle persone e nei campi di questa tabella c'è anche il campo CITTA' che , se il valore (milano, foggia, napoli, trento...) è già stato salvato nell'altra tabella 'città' io lo posso recuperare dalla tabella 'città' prendendolo da una comboBox che punta al campo ''città'' della tabella 'città' (si lo so forse ho sbagliato a nominare tabella e campo allo stesso modo, ma era per rapidità e comunque non dovrebbe inficiare il risultato...credo) e salvare nel campo 'città' della tabella 'nomi' (che sarebbe la citta di residenza); ma se, mentre io compilo un nuovo form con l'anagrafica di una nuova persona (in questo caso evidentemente solo il campo NOME) e questo nome risiede (per praticità) in una città che non è ancora stata salvata nella tabella 'città', io posso scriverla nella linea alta della comboBox, rimarrà salvata come ''città di residenza'' nella tabella 'nomi', ma , anche se l'ho digitata nella comboBox che io ho provato a collegare (ma forse non l'ho fatto nel modo giusto) alla tabella 'città', questa nuova CITTA' non mi rimane salvata anche nella tabella 'città'. Tutto questo avrebbe lo scopo per cui se successivamente io volessi fare un altra tabella con altre finalità, ma che possa avere come campo il nome di una città, vorrei 'pescare' quel nome dalla tabella 'città' già esistente che vorrei fosse aggiornato ogni volta che decido di inserire un nuovo nome di città, anche dal formulario che mostra prevalentemente ma non solo, l'anagrafica della persona. Scusami...so di essere un asino... e magari non mi esprimo correttamente, ma oltre questo non saprei forse come spiegare il mio scopo
Io ho provato nel tuo esempio ad inserire nel formulario il record 13 della tabella 'nomi' che è 'mario' ed ho digitato nella linea alta della comboBox una nuova località ''valseriana''. Ora compare nella lista della comboBox, ma non è stata salvata nella tabella 'città', che è quello che vorrei esattamente ottenere
OpenOffice 4.1
Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Salvare Voci di Record in due tabelle diverse

Messaggio da charlie »

Ciao, ti eri fatto capire, ma ...
scrivere contemporaneamente un dato in due tabelle diverse forse si può con una macro che legga il nuovo dato, apra la seconda tabella, scansioni i dati esistenti per evitare doppioni e aggiunga un nuovo record.
La soluzione che ti ho proposto elimina la necessità di una seconda tabella ed i dati sono comunque disponibili in altre query e formulari.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
pinoZoe
Messaggi: 8
Iscritto il: venerdì 13 ottobre 2017, 15:42

Re: Salvare Voci di Record in due tabelle diverse

Messaggio da pinoZoe »

Diciamo che la soluzione che mi proponi mi sembrerebbe adeguata, infatti ho già provato a fare qualcosa di simile, ma non riesco a farlo funzionare. Ora ti spiego cosa ho fatto. Non so come creare la macro per aprire il secondo formulario che inserisce i dati nella seconda tabella, se poi hai qualche suggerimento... è ben accetto! Io ho fatto così: nel formulario 'nomi+città' ho provato ad aprire la sorgente dati (F4) e provando a navigare dentro la sorgente dati e puntando alla tabella 'città', riportando da un comando 'copia' il nome della nuova CITTA' e incollandolo nel record della tabella...così tutto ok. Quando però ho provato a registrare una macro che facesse questo, mi sono accorto che non succedeva perché la macro non mi legge il movimento del mouse per entrare nel riquadro della SORGENTE DATI e quindi non riproduce il comando. Non sono nemmeno riuscito a trovare un tasto o una sequenza (TAB,Ctrl, Alt o altro) che mi consentisse di entrare a digitare nei record della tabella 'città' aperta col comando F4 SORGENTE DATI. Quindi non sono riuscito a riprodurre con la macro ciò che avevo fatto step by step. Forse la tua soluzione sarebbe meglio, o se conosci il modo di spostarsi con i tasti (registrabili dalle macro) tra il form e la sorgente dati, te ne sarei grato. Diversamente la soluzione a cui tu fai riferimento, implicherebbe, se non ho capito male, di redarre tutti gli elenchi di un unica tabella che contenga tutti i campi eventualmente necessari successivamente in diverse circostanze. Questo non è quello che volevo ottenere io, perché la mia finalità vorrebbe avere più o meno questo scenario:
io registro nella tabella 'città' alcuni nomi di città (milano, roma...) che restano salvati
nel formulario 'nomi+città' registro alcune ANAGRAFICHE (Pietro che risiede a Milano, Giovanni che risiede a Roma....)
e fin qui tutto bene perché nel formulario io ho previsto una comboBox che punta (non so se si dica così) all'elenco di città nella tabella 'città già salvate, per cui quando nel formulario digito nel comando di campo 'nomi' il nome Pietro, poi potrò scegliere la città Milano in cui risiede, già presente nella comboBox, e cosi vale per Giovanni con Roma e queste due scelte, essendo il formulario derivato dalla tabella 'nomi+città', verranno salvati in questa tabella. Se a questo punto io volessi digitare nel formulario il nome Luigi (che risiede a Napoli), lo digito nel campo NOMI, ma naturalmente nell'elenco della comboBox non mi compare la città di Napoli. Io vorrei fare in modo che digitandola nella linea della comboBox, oltre a rimanere a disposizione per i record successivi nella lista della comboBox, venisse anche salvata nella tabella 'città'.
Questo dovrebbe avere lo scopo, sempre in termini di esempio, di ottenere ciò che segue:
io voglio ampliare il database ed oltre a sapere che... Pietro risiede a Milano, Giovanni risiede a Roma e Luigi a Napoli, voglio fare una nuova tabella delle ''aziende fornitrici'' e vorrei avere un formulario dove per ogni record delle ''aziende fornitrici'' ho una schermata dove avrò il Nome dell'Azienda e la Città dove si trova. Il mio scopo vorrebbe essere quello per cui io possa evitare di uscire tutte le volte dal Form dei nomi o da quello delle aziende per entrare in quello delle città a digitare un nuovo nome di città che, digitato per esempio nel form 'città+nomi', io mi possa ritrovare la nuova città nella relativa tabella'città' e possa anche sceglierla in un eventuale Form 'aziende+città''' che mi dica 'dove si trova quella azienda e che la città rimanga salvata anche nei record della tabella 'aziende+città'. Spero di essermi spiegato...scusami sempre ma sono proprio neofita, ma mi piace capire e costruirmi queste cose da solo!.... In pratica pensavo di creare delle tabelle, con dei dati che io poi possa combinare tra loro per creare altre tabelle più complesse con records fatti di campi i quali dati vengono prelevati da DIVERSE tabelle contenenti dati tra loro non in relazione, ma che vado a mettere in relazione io quando mi serve. Io pensavo fosse questo il concetto di Database Relazionale, ma forse ho sbagliato totalmente...mi sa che mi mancano le basi... o no?
OpenOffice 4.1
Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Salvare Voci di Record in due tabelle diverse

Messaggio da charlie »

È buona norma costruire un database con più tabelle separate messe in relazione fra loro.
So maneggiare un po' le macro ma non so scriverle per compiti particolari come vorresti tu.
Il registratore di macro non è affidabile, soprattutto in Base.
Quindi, o utilizzi il sistema che ti ho già proposto, o utilizzi le tabelle separate come sarebbe più ortodosso limitandoti ad apportare le modifiche necessarie di volta in volta ai formulari. Se disponi di un display sufficientemente grande puoi mettere più formulari, anche indipendenti fra loro, nella stessa pagina.
Se posti un database di esempio più completo posso farti vedere cosa intendo.

p.s. Cerca di essere più sintetico, non è agevole leggere post molto lunghi come il precedente. Grazie.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
pinoZoe
Messaggi: 8
Iscritto il: venerdì 13 ottobre 2017, 15:42

Re: Salvare Voci di Record in due tabelle diverse

Messaggio da pinoZoe »

Grazie. scusa la lunghezza, ma volevo essere più dettagliato possibile. Quindi mi pare di capire che quello che voglio io non si possa fare, cioè di aggiornare dall'interno di un form che esprime una certa tabella, i dati di un altra tabella diversa. Mi pare che mi dici che sia meglio aggiornarli in altri form dedicati, giusto? Ma se è così lo so fare. Credo di non aver problemi, ma se ce ne fossero ti disturberò ancora. Se mi confermi quello che ti ho scritto, io credo di essere a posto.

P.s. Nel frattempo ho provato ulteriormente ad approfondire e credo che la soluzione finale (l'armageddon...) del mio problema, sia (come sono riuscito a capire dal manuale di OpenOffice), quella di creare un formulario principale che contenga dei sottoformulari collegati alle varie tabelle: è proprio spiegato in questo senso. Solo che sarebbe spiegato anche come creare sottoformulari, ma quello è già un po' meno semplice. Ho provato a fare come suggerito, ma non riesco a 'portare il nuovo formulario creato che deve andare nel formulario principale come sottoformulario usando il NAVIGATORE DEL FORMULARIO'. Se pensi di potermi aiutare in questo senso...forse è la volta buona che risolvo il problema.
OpenOffice 4.1
Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Salvare Voci di Record in due tabelle diverse

Messaggio da charlie »

pinoZoe ha scritto:dal manuale di OpenOffice
Quale?
pinoZoe ha scritto:ma non riesco a 'portare il nuovo formulario creato che deve andare nel formulario principale come sottoformulario usando il NAVIGATORE DEL FORMULARIO'
Di solito si fa con il navigatore aperto dall'inizio, ma è possibile anche dopo facendo un trascinamento con il mouse.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
pinoZoe
Messaggi: 8
Iscritto il: venerdì 13 ottobre 2017, 15:42

Re: Salvare Voci di Record in due tabelle diverse

Messaggio da pinoZoe »

[Forse mi manca qualcosa. Sono riuscito ad entrare nel navigatore del formulario, però, una volta aperto il NAVIGATORE DEL FORMULARIO per il formulario 'nomi+città', che dovrebbe diventare il formulario Principale, contenente il formulario 'città' che deve diventare il sottofoemulario, nel NAVIGATORE non lo vedo il formulario 'città' da selezionare e trascinare all'interno del form principale, -allego screenshots e serve per maggior comprensione

P.S. NON ESSENDO MOLTO PRATICO LE IMMAGINI SONO IN ORDINE INVERSO...
Allegati
Cattura-3.PNG
Cattura-2.PNG
Cattura-1.PNG
OpenOffice 4.1
Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Salvare Voci di Record in due tabelle diverse

Messaggio da charlie »

Ma nel file che hai postato, MainForm e SubForm sono già inseriti (vedi screenshot).
Ne devi aggiungere un altro?
Allegati
Schermata 2017-10-16 alle 18.22.38.png
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
pinoZoe
Messaggi: 8
Iscritto il: venerdì 13 ottobre 2017, 15:42

Re: Salvare Voci di Record in due tabelle diverse

Messaggio da pinoZoe »

Si esatto. Anche questa volta hai capito perfettamente. Voglio aggiungere più di un subform. Del resto l'esempio che ti ho inviato ha un subform ma è stato creato col l'aiuto del Wizard. Io volevo arrivare allo stesso risultato, ma a prescindere dal wizard, così in questo caso potevo creare un primo subform giusto per provare. ma quando mi serve ne potrei creare altri.
L'altra soluzione sarebbe quella di 'saltare' nella SORGENTE DATI con una macro e scrivere il valore nella tabella pertinente che seleziono in SORGENTE DATI. Sarei riuscito a fare quasi tutto, ma, non registrando le macro i movimenti del mouse, devo farlo 'via tastiera' e mi manca solo, ammesso che ci sia, il tasto, o i tasti, che da un qualsiasi campo nel form principale mi consenta, in modalità 'inserimento dati' chiaramente, di spostarmi con il cursore di tastiera nella finestra della sorgente dati: NON RIESCO A TROVARLO...mi potresti aiutare? Questa soluzione sarebbe un po' più articolata ma forse più efficace perché mi consentirebbe di evitare di riempire il form principale di form secondari. Vedi tu come riesci ad aiutarmi. In ogni caso grazie mille per la disponibilità e la pazienza
OpenOffice 4.1
Windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Salvare Voci di Record in due tabelle diverse

Messaggio da charlie »

Ciao, con il navigatore aperto, clic destro su MainForm:
Schermata 2017-10-18 alle 14.23.39.png
Clic desto su Formulario > Proprietà :
Schermata 2017-10-18 alle 14.30.06.png
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Rispondi