Inserire dati da subform

di
Anonimizzato10020
il
2 risposte

Inserire dati da subform

Ciao a tutti, vi chiedo aiuto per un problemino.

Premessa: non sono molto pratico di access (e faccio tutto in modo molto autodidatta)

situazione (semplificata per non complicare ulteriormente le cose ):

Tabella Attività: Nome_attività | Descrizione
Tabella Persone: Nome_persona | Mail
Scambio: Nome_attività | Nome_persona

Come avrete capito si tratta di una relazione molti a molti, dunque ho già creato la relativa relazione (senza mettere però l'integrità referenziale).

A questo punto devo creare 2 maschere

MASCHERA PERSONE
In cui per ogni scheda vedo i dati di una persona e sotto, una subform con dentro i dati delle diverse attività in cui lavora
ex:
MASCHERA
Id1 | Nome: Gianni
SOTTOMASCHERA Attività:
Barilla | Produce Biscotti
Nike | Produce scarpe

MASCHERA
Id2 | Nome: Marco |
SOTTOMASCHERA Attività:
Barilla | Produce Biscotti
Geox| Produce scarpe

etc.

MASCHERA ATTIVITA'
In ogni scheda ho i dati di una attività e sotto, una subform con i dati delle persone che ci lavorano
Ex

MASCHERA
Id1 | Nome: Nike
SOTTOMASCHERA Attività:
Gianni |
Nike | Produce scarpe

MASCHERA
Id2 | Nome: Barilla|
SOTTOMASCHERA Attività:
Gianni |
Marco |

etc

Attualmente la tabella Attività è piena di dati. La tabella Persone è vuota

Vorrei che la tabella persone si riempisse, partendo dalla sottomaschera_persone.
Della serie: sono su BARILLA, voglio aggiugnere nella sottomaschera un nuovo nome e mi basta scriverlo sotto.

Attualmnete creando una maschera con procedura guidata e mettendo nella sottomaschera
Nome_persona -> Da scambio
Mail -> Da Tabella_persone

non è possibile farlo, perchè access mi da' errore...

Spero di essermi spiegato bene hehe

Grazie a tutti per il supporto|

2 Risposte

  • Re: Inserire dati da subform

    Per me i problemi sono molteplici:
    A) Access ti dà errore innanzitutto perchè in Persone non ci sono dati.
    B) Da quella posizione (sottomaschera) puoi pretendere solo di selezionare qualcosa che già esiste.
    C) Pretendere di aggiornare una tabella di livello superiore (Persone) partendo da un livello inferiore (Scambio) è impossibile nella maniera così immediata come lo vorresti tu.
    D) Non capisco perchè non hai incluso l'integrità referenziale nelle relazioni uno-a-molti.

    Io posso aiutarti concettualmente fino ad un certo punto, poi se vuoi le cose fatte bene bene, altri utenti più esperti possono migliorare tutto l'assetto che hai creato.
    1) Vai in visualizzazione struttura maschera Attività
    2) Aggiungi un pulsante di comando e, se sfrutti la procedura guidata, gli devi dire che ti deve aprire la maschera Persone (la maschera Persone deve essere singola, senza sottomaschere e possibilmente con tutti i campi)(se non ce l'hai creane una nuova). Poi Salva tutto.
    3) Veniamo in pratica: apri la maschera Attività e quando sei su BARILLA, desideri aggiungere una nuova Persona. Quindi clicchi sul pulsante che ti apre la maschera Persone, inserisci tutti i suoi dati e chiudi la maschera.
    4) Adesso arrivano i guai seri perchè Access non aggiorna automaticamente Scambio quando le maschere restano aperte, cioè così come stai adesso Scambio ancora non può vedere la nuova Persona arrivata. Per risolvere questo problema ci sono almeno 2 o 3 strade.
    4.1 Strada precisa ed elegante: occorre un codice di Visual Basic che opportunamente organizzato risolve proprio questa situazione critica. Io non so usare Visual Basic e qui non ti posso più aiutare.
    4.2 Strada molto terra-terra: Chiudi tutte le maschere aperte, riapri Attività, ti riposizioni su Barilla. Adesso dalla sottomaschera Scambio puoi selezionare la nuova persona che avevi inserito poco prima.
    4.3 Strada terra-terra con macro. Equivale alla 4.2, ma organizzata con una serie di istruzioni macro, che essendo molto rapide, risolvono allegramente alla tua questione. Forse qui potrei darti una mano.

    Per ora preferirei che tu comprenda il quadro della situazione.
    Se desideri percorrere la 4.1 aspetta che ti risponda un utente più esperto di me.
    Altrimenti prova a costruire qualche istruzione macro, se è un campo di tua comprensione, oppure potrei provarci io stesso. Io ho risolto con la 4.3 in un caso analogo nel mio database.
  • Re: Inserire dati da subform

    Molto Gentile OsvaldO! Grazie!!
Devi accedere o registrarti per scrivere nel forum
2 risposte