Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Form con subform in struttura a schede

  1. #1
    mailman_1969 non è in linea Scolaretto
    Buonasera,
    mi trovo con un dilemma. In un database creato anni fa ho un automatismo che non riesco a replicare in un database molto simile (cambiano i nomi dei campi ma fanno le stese funzioni). In pratica: ho tre tabelle che chiamerò per semplicita’ Tab1 Tab2 e Tab3. In ogni tabella ho una serie di campi così identificati:
    Tab1
    CampoA (chiave primaria) numerico
    CampoA1 ID numerazione automatica
    Campo A2 testo
    ecc.

    Tab2
    Campo B (chiave primaria) numerico
    Campo B1 ID numerazione automatica
    Campo B2 flag
    ecc.

    Tab3
    Campo C ID numerazione automatica (chiave primaria)
    Campo C1 numerico
    Campo C2 testo
    ecc.

    Le tabelle sono in relazione fra loro nel modo seguente:
    Tab1 inner join con Tab2 attraverso i campi A e B (uno a uno)
    Tab1 right join con Tab3 attraverso i campi A e C1 (uno a molti)
    Tab2 right join con Tab3 attraverso i campi B e C1 (uno a molti)

    Ho poi due maschere inserite in un contenitore a schede:
    Form1 per inserire i dati in Tab1 e Form2 per inserire i dati in Tab2.
    Nella Form2 ho inserito una Subform collegata alla Tab3. La subform è collegata alla form2 tramite il campo master B ed il campo secondario C1. La subform è in modalità Foglio dati.

    Ora veniamo al problema: in uno dei due database se passo dalla scheda della Form1 dopo aver inserito un nuovo record, alla scheda della Form2 che trovero’ ovviamente vuota (anche se nel campo B leggo il valore del campo A ma l'ID è vuoto) e vado ad inserire un nuovo record direttamente nella subform, il campo C1 si autocompila con il valore del campo A (e non so perché....). Questo automatismo, che a me va bene, non riesco a replicarlo nel nuovo database: finché non inserisco il record nella Form2 non mi valorizza il campo C1 della subform con il valore di campo B.
    Qualcuno mi può illuminare?

  2. #2
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Chiamare le tabelle Tab1, Tab2, Tab3 senza conoscere la logica intrinseca, rende la discussione più complicata. Ancor più che utilizzi tipi di campo "inappropriati". Di solito sono i campi di tipo "numerazione automatica" a essere chiave primaria.
    Nella Finestra Relazioni utilizzare left/right join (almeno io) non so come conviene muoversi.
    La relazione uno-a-uno è quasi mai usata, molti la sconsigliano.

    Mia conclusione: Boh, da dove si vuole cominciare?
    ℹ️ Leggi di più su OsvaldoLaviosa ...

  3. #3
    mailman_1969 non è in linea Scolaretto
    I nomi indicati per le tabelle sono solo da esempio come peraltro i campi. Per quanto riguarda le chiavi primarie non sta scritto da nessuna parte che deve per forza essere un campo id. Importante che il campo abbia le caratteristiche giuste per essere una chiave univoca... Relazione uno a uno l'ho usata per dividere i campi in due tabelle diverse in quanto la tab1 ha circa 20 campi e ne ha un’altra decina la tab2 per cui ho fatto due tabelle. Poi se vogliamo entrare nel contesto del problema posso spiegare meglio

  4. #4
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Quote Originariamente inviato da mailman_1969
    Poi se vogliamo entrare nel contesto del problema posso spiegare meglio
    Almeno per me (il più duro di comprendonio del forum) risulta necessario.
    ℹ️ Leggi di più su OsvaldoLaviosa ...

  5. #5
    mailman_1969 non è in linea Scolaretto
    Il db gestisce le attività di officina: ad ogni lavoro che entra viene assegnato un numero di commessa progressivo incrementale (campo A). Nella form A questo valore si incrementa di uno ad ogni nuovo inserimento partendo dall' ultimo valore più alto inserito. In Tab1 inserisco anche ulteriori dati che descrivono la commessa. In Tab2 inserisco in un secondo tempo i dati che riguardano i costi della commessa: quindi offerta o consuntivo, ordine, importi, ecc. In tab3 inserisco le bolle della commessa, quindi entrata ed uscita (che possono essere anche più di una perche' la commessa può entrare ed uscire più volte). Da qui la relazione uno a molti.
    Ora quello che non riesco a capire è come fa il campo C1 a popolarsi automaticamente con il numero di commessa del campo A se nella subform il campo è collegato al campo B che non risulta ancora popolato. Spero di aver chiarito. Premetto che questo automatismo a me va bene ma non riesco a replicarlo nel nuovo db

  6. #6
    Quote Originariamente inviato da mailman_1969 Visualizza il messaggio
    ...Questo automatismo, che a me va bene, non riesco a replicarlo nel nuovo database:
    Per noi è impossibile sapere dov'è la differenza tra i due database, se non ci riesci tu che li puoi vedere.
    Se puoi metterne a disposizione una versione dimostrativa, con dati ovviamente fittizi e ridotti all'osso, quanto basta per vedere il comportamento "corretto" in uno e l'assenza di funzionamento dell'altro penso che sia l'unico sistema per uscirne.
    Se non hai la possibilità di caricare direttamente sul forum i file devi appoggiarti a siti esterni (onedrive, google drive, dropobox e siti di file sharing ad hoc).

  7. #7
    L'avatar di muttley005
    muttley005 non è in linea Topo di biblioteca
    scusa ma perchè hai diviso la tab A e B se è uno a uno?
    non ha senso avere 2 tabelle separate, a me è capitato solo una volta nella vita di avere 2 tabelle uno a uno ma solo perchè avrei superato il limite di campi (255 se non erro) ... e prima di ricevere insulti per la numerosità appena esplicitata confermo che servivano tutti e "difficilmente" sarebbero stati impostabili in tabelle 1-N, giusto per farvi capire era un vecchio db access che gestiva dati di cartella clinica, con singoli valori di misurazioni distinte e di tipologie diverse... ma trattavasi di vecchio DB di + di 15 anni fa e ora l'avrei gestito a prescindere in modo diverso.

    Se hai bisogno di esporre in 2 form distinte perchè l'inserimento ed il contesto dei dati sono separati anche temporalmente non c'è alcun problema, li mantieni così ed entrambi prenderanno solo una parte dei dati da visualizzare/modificare.
    Ultima modifica di muttley005; 24-03-2021 09:24 

  8. #8
    mailman_1969 non è in linea Scolaretto
    Quote Originariamente inviato da muttley005 Visualizza il messaggio
    scusa ma perchè hai diviso la tab A e B se è uno a uno?
    Perche' come ho scritto sopra, il numero di campi della Tab A era' gia' molto elevato e non volevo appesantirla con ulteriori campi, per cui ho creato la Tab B. Anche perche' questi ultimi dati li inserisco sempre in un secondo tempo.

  9. #9
    L'avatar di muttley005
    muttley005 non è in linea Topo di biblioteca
    ... in due tabelle diverse in quanto la tab1 ha circa 20 campi e ne ha un’altra decina la tab2 per cui ho fatto due tabelle...
    20+10 sono tanti ??
    ma anche fossero 50+50 dove sta il problema? il problema te lo sei creato separando i dati
    poi tu sei libero di fare come vuoi ma penso di darti un consiglio tecnico nel dirti che non si gestisce così... almeno io non lo gestirei così!

    EDIT: anche il fatto che tu li inserisca in due tempi diversi non avvalora la separazione

  10. #10
    mailman_1969 non è in linea Scolaretto
    Quote Originariamente inviato da Phil_cattivocarattere Visualizza il messaggio
    Per noi è impossibile sapere dov'è la differenza tra i due database, se non ci riesci tu che li puoi vedere.
    Se puoi metterne a disposizione una versione dimostrativa, con dati ovviamente fittizi e ridotti all'osso, quanto basta per vedere il comportamento "corretto" in uno e l'assenza di funzionamento dell'altro penso che sia l'unico sistema per uscirne.
    Se non hai la possibilità di caricare direttamente sul forum i file devi appoggiarti a siti esterni (onedrive, google drive, dropobox e siti di file sharing ad hoc).
    Questa mattina ho risolto "l'arcano": nel primo db avevo i campi delle tab ed i corrispettivi controlli nelle forms con lo stesso nome, nel nuovo db invece li avevo diversificati per cui il campo B (nella realta' si chiama NUMtabCOco), nella form il suo controllo lo avevo chiamato in modo diverso. Quando Access associa le subforms alle forms con i campi master e secondari fa scegliere nell'autocomposizione i nomi dei campi, impostando lo stesso nome anche per i controlli mi crea l'autocomposizione.
    Spero di aver spiegato correttamente.

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. controllo struttura schede
    Da christian_Boy nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 16-03-2015, 19:24
  2. [Access] Focus su Form con struttura a schede
    Da niubbo600 nel forum Microsoft Access
    Risposte: 14
    Ultimo Post: 14-05-2010, 09:19
  3. struttura a schede
    Da rpk nel forum Microsoft Word
    Risposte: 2
    Ultimo Post: 06-04-2008, 01:01
  4. Access Struttura a Schede Form
    Da Squalo10 nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 14-08-2007, 16:24
  5. Struttura a schede
    Da seatleon nel forum Microsoft Word
    Risposte: 1
    Ultimo Post: 30-03-2005, 16:37