Utilizzo della stessa maschera su due tabelle diverse.

di il
23 risposte

23 Risposte - Pagina 2

  • Re: Utilizzo della stessa maschera su due tabelle diverse.

    No mi riferisco alla maschera principale.

  • Re: Utilizzo della stessa maschera su due tabelle diverse.

    30/12/2023 - Scolaretto ha scritto:


    Capisco e  posso anche concordare  di fare una sola  tabella anche se rischia di grande oltre 100000 records

    Una quisquigliia…

  • Re: Utilizzo della stessa maschera su due tabelle diverse.

    30/12/2023 - Scolaretto ha scritto:


    No mi riferisco alla maschera principale.

    Che ti riferivi alla maschera principale, l'avevo capito, io rispondevo alla domanda su quale strumento usare per raggruppare più tabelle su una stessa maschera.

    Ed una soluzione percorribile è quella di creare una maschera principale non associata con delle sottomaschere associate alle varie tabelle.

    Un'altra soluzione possibile è quella di usare una maschera non associata, con un controllo a schede, dove in ogni scheda c'è una sottomaschera associata alla tabella corrispondente.

    Altra soluzione è quella di usare un  controllo spostamento, dove hai la possibilità di associare sul pulsante di destra una associazione e sui pulsanti in alto la tabella corrispondente a quella determinata associazione, le relative maschere e query.

    Altra soluzione, visto che tutte le tabelle sono identiche è quella di creare una maschera principale e di volta in volta, cambiare, magari con un pulsante la fonte dati della maschera e fare il refresh, così che cambi di volta in volta la relativa associazione e tabella collegata.

    Visto che hai però la possibilità di aggiungere ulteriori tabelle, ogni volta che ne verrà aggiunta una, dovrai comunque andare a modificare la struttura della maschera, aggiungendo delle schede, oppure pulsanti spostamento, o scrivere codice per cambiare la fonte dati.

    Forse per l'ultima soluzione, cioè quella del cambio della fonte dati tramite un pulsante, usando al posto del pulsante una combo box è possibile automatizzare la connessione ad eventuali nuove tabelle aggiunte successivamente, magari creando una connessione composta con i vari elementi, tramite vba avendo però sempre una sola maschera principale.

    Tutto però dipende da quello che effettivamente devi fare.

    Devi avere tutte le tabelle visualizzate e lavorarci contemporaneamente, magari incrociando i dati, sia a livello visuale che tecnico? Oppure lavori ogni volta solo su una tabella?

    Penso che la soluzione sia possibile, ma tutto dipende da quello che materialmente ti occorre.
    E questo non lo hai spiegato.

    Alla fine è come se stessi lavorando su un numero di database diversi e li vorresti gestire con un unica maschera.

    Tecnicamente è come se avessi un frontend che si collega a diversi backend, solo che si trovano tutti in un solo database e quindi potresti creare anche una tabella di configurazione, dove inserisci delle costanti con il nome della tabella a cui collegarsi, e poi inserisci delle variabili nelle query, nelle macro e nel codice vba, in modo che sfrutti tutto quello che hai costruito e realizzato, solo cambiando il valore desiderato.
    All'apertura del database, scegli l'associazione su cui devi lavorare ed imposti le variabili, collegandoti alla tabella relativa a quella associazione.

  • Re: Utilizzo della stessa maschera su due tabelle diverse.

    Ti ringrazio prima di tutto.

     Quello che ad oggi ho costruito, oltre a modifica ed inserimento dati, è una tabella (Master) che contiene i nomi di tutte le tabella  ed un sistema che permette all'utente di generarne di nuove. Tutte queste informazioni vengono salvate nella tabella “Master”.

    Partendo dalla visualizzazione della Master con Form o combo, vorrei mediante un pulsante, visualizzare una singola tabella e su questa eseguire aggiornamenti e modifiche. 

    Tutte le soluzioni che mi hai suggerito soddisfano la mia richiesta “gestire tabelle diverse con una sola maschera”, ma alcune di queste, anche se interessanti, non sono alla mia portata.

    La soluzione che forse, con un aiuto sarei in grado di fare e quella di cui sotto

    Altra soluzione, visto che tutte le tabelle sono identiche è quella di creare una maschera principale e di volta in volta, cambiare, magari con un pulsante la fonte dati della maschera e fare il refresh, così che cambi di volta in volta la relativa associazione e tabella collegata.

    Ti ringrazio a presto

  • Re: Utilizzo della stessa maschera su due tabelle diverse.

    30/12/2023 - Scolaretto ha scritto:


    Ti ringrazio a presto

    Io darei un occhiata al controllo spostamento, anche solo per documentazione.

    Collegato al cambio di fonte dati, secondo me diventerebbe una soluzione interessante, sia a livello di gestione che grafico.

    Questo è solo un piccolo esempio. E nativamente ogni controllo ha la possibilità di avere nella proprietà di connessione, oltre alla tabella o alla maschera una where condition nativa.

  • Re: Utilizzo della stessa maschera su due tabelle diverse.

    Non lo conosco ma vedo di capire come funziona grazie per l'aiuto.

  • Re: Utilizzo della stessa maschera su due tabelle diverse.

    Sebbene ci siano dei principi di normalizzazione da rispettare, prova questa soluzione. Io parto dal presupposto che tu hai n tabelle con gli stessi identici campi.
    1) Crea una tabella Tabelle con un solo campo Tabella dove elenchi tutti i nomi delle tue tabelle (Identiche).
    2) Chiamerò MascheraPrincipale quella che fa da base per una qualsiasi delle n tabelle, avente ovviamente gli stessi campi.
    3) Crea una maschera vuota in visualizzazione struttura. 
    4) Aggiungi manualmente una casella combinata che, con la procedura guidata, deve avere come origine la tabella Tabelle. La casella combinata ha Nome controllo: Combo.
    5) Aggiungi un pulsante Vai.
    6) All'evento Su clic di Vai, scrivi il seguente codice VBA

    
    Private Sub Vai_Click()
    DoCmd.OpenForm "MascheraGenerale", , , , , , Me!Combo
    DoCmd.Close acForm, "SceltaTabella"
    End Sub


    7) Salva la maschera con nome SceltaTabella.
    8) Apri la MascheraPrincipale in visualizzazione struttura
    9) Fai doppio clic sul quadratino all'estrema sinistra per visualizzare tutte le proprietà della maschera
    10) Paletta Eventi, scegli “Su caricamento”
    11) Scrivi il seguente codice VBA

    Private Sub Form_Load()
    Me.RecordSource = Me.OpenArgs
    End Sub

    12) Salva tutto

    Come devi comportarti:
    1) Apri la maschera SceltaTabella
    2) Dalla combo scegli la tabella che vuoi sia la base dati per MascheraGenerale
    3) Clic su Vai. Si apre MascheraGenerale contenente i dati della tua tabella scelta. Automaticamente si chiude anche SceltaTabella.

    Per me si tratta di una soluzione non ortodossa, ma l'ho testata e funziona.

  • Re: Utilizzo della stessa maschera su due tabelle diverse.

    29/12/2023 - Scolaretto ha scritto:


    Ho  questo problema che non sono in grado di risolvere. Ho un database che contiene una serie di tabelle identiche nella struttura ma non nel contento che vorrei visualizzare con un unica maschera. La cosa più ovvia era utilizzare una sola tabella andando poi a diversificare i contenuti della varie tabella tramite un filtro, ma ognuna di queste tabella contiene circa 30000 record è raggruppandola mi viene una tabella enorme che non so se si riesce a gestire in modo ottimale. Mi ricordo che una volta avevo fatto un maschera tramite il SET di form ma non ricordo nulla di come veniva costruita . Qualcuno mi può dare una mano ?

    Se hai tabelle uguali il problema non è usare una form per 2 tabelle, ma riflettere sul fatto che molto probabilmente c'è un errore.

    Il fatto tu voglia tenere tabelle separate per commesse separate… non è un valido motivo tecnico, come quelli che fanno tabelle separate per anno contabile…

    Chiaramente Libero di sbagliare, perché tecnicamente questo è…. però pensaci bene.

    P.s. stai parlando di bazzeccole come records… il concetto tecnico di un Rdbms o db relazionale è quello di usarloncome tale, quindi avendo come MUST la normalizzazione, sarebbe sforzo inutile voler deformare un sistema.

  • Re: Utilizzo della stessa maschera su due tabelle diverse.

    La divisione su più tabelle nasceva dal dubbio che il numero di record presenti su un unica tabella rallentasse in modo significativo la visualizzazione dei dati, ma ho fatto delle prove e con tabella di 150000 record ed ho visto che tutto sommato i tempi sono accettabili.

    D'altra parte il fatto di fare una "MascheraGenerale" non mi permetteva, per le mie conoscenze, di personalizzare la form, colonne testate ecc. Per cui a questo punto ,visto che con una sola tabella posso aprire con il comando docmd.openfrom  sottoform passando i vari parametri ho pensato di utilizzare questo metodo.

    Mi riservo comunque di capire meglio l'opzione di spostamento perché sembra molto interessante, per ora da uno sguardo veloce non ho capito granché, vedremo in seguito

    Ringrazio tutti alla prossima

Devi accedere o registrarti per scrivere nel forum
23 risposte