Valore da una maschera ad un altra

di il
8 risposte

Valore da una maschera ad un altra

Salve, sto lavorando ad un mini "progetto" di gestione degli ordini di un ristorante, premetto che sono un pivello per quanto riguarda Access.
Devo creare un ordine uso una maschera per farlo, ogni ordine è associato ad un singolo tavolo, una maschera mi elenca tutti i tavoli.
Vorrei cliccando su un bottone in qualche modo potermi trovare sulla maschera di inserimento_ordine già l'id ed il numero del tavolo
( N.B. dati del iesimo tavolo da cui ho premuto il bottone)

Allego gli screenshot :
TavoliPiazzetta.png
TavoliPiazzetta.png

Ringrazio in anticipo per le eventuali risposte.

8 Risposte

  • Re: Valore da una maschera ad un altra

    Vediamo se ho capito bene la domanda
    sul pulsante della maschera "tavoli piazzetta" metti il seguente codice sull'evento click
    docmd.openform "nome-maschera-inserisciordine"
    maschere.nomemascherainserisciordine.nometextbox-idtavolo=me.nometextboxntavolo in mascheratavolipiazzetta
    maschere.nomemascherainserisciordine.nometextbox-numero=me.nometextboxnposti in mascheratavolipiazzetta
    poi, secondo me, dovresti lasciare in pop up la maschera inserisci ordine in modo da non poterla mettere in secondo piano involontariamente
  • Re: Valore da una maschera ad un altra

    Qui c'è tutto...
    https://www.iprogrammatori.it/forum-programmazione/access/passaggio-valore-una-maschera-altra-maschera-t42871.html
  • Re: Valore da una maschera ad un altra

    Grazie ad entrambi per la risposta, questa sera provo ad implementare e vi aggiorno.
  • Re: Valore da una maschera ad un altra

    Ti proporrei di ragionare in modo più funzionale... i suggerimenti ricevuti vanno compresi sia per i pregi che per i difetti.
    Quanto suggerito da Marco, non è affatto un buon metodo, per vari motivi principalmente è una tecnica di MALA PROGRAMMAZIONE in quanto vincoli Oggetti ad Oggetti, ne consegue che la Form iniziale deve rimanere aperta, e che la Form da aprire può funzionare SOLO se chiamata dalla Form iniziale... e non è così che si sviluppa, oltretutto la Form non viene aperta in AGGIUNTA, e solitamente le Form di INSERIMENTO si aprono come MODALI, [acDialog] rendendo quel codice inutile.

    Il nocciolo del problema è che un Tavolo, deve essere in relazione 1-M con gli Ordini, e finchè apri un'ordine già inserito non ci sono problemi... ma se apri un'ordine NUOVO sfruttando una Form esterna associata alla Tabella MOLTI, allora devi relazionare la FK alla PK del Tavolo.

    Nel link proposto da [Sgrubak] la tecnica è più corretta, si suggerisce l'uso di OpenArgs ma... servirebbe fare una attenta analisi di come funziona, magari a livello transazionale per capire cosa succede in caso di annullamento Ordine...
    Semplifichiamo, quanto sopra è argomento più complesso.

    Quando devi inserire un NUOVO ORDINE la form viene aperta in modalità "AGGIUNTA"... recuperando il valore della FK da OpenArgs si valorizza la FK... ma se apri la Form in altra modalità passando erroneamente il parametro si fanno danni...!
    
    DoCmd.OpenForm "NomeForm", , , , acFormAdd, acDialog, Me.IdTavolo
    
    Quindi nella Form Ordini che è SOLO 1 non hai Form per guardare Ordini e Form per INSERIRE...:
    
    Private Sub Form_Load()
        If Me.NewRecord Then
           If Len(Me.OpenArgs & vbNullstring)>0 then Me.CampoFK=Me.OpenArgs
        End If
    End Sub
  • Re: Valore da una maschera ad un altra

    Si certo, il mio metodo è molto spartano, non sono entrato in merito di relazioni tra tabelle e sulla struttura del db
  • Re: Valore da una maschera ad un altra

    marco61 ha scritto:


    Si certo, il mio metodo è molto spartano
    Non è spartano, è errato.

    marco61 ha scritto:


    , non sono entrato in merito di relazioni tra tabelle e sulla struttura del db
    Perchè dal momento che la domanda lo rendeva evidente..?

    Una risposta in meno ma ragionata.
  • Re: Valore da una maschera ad un altra

    Ok va bene, ho sbagliato e sono stato superficiale!
  • Re: Valore da una maschera ad un altra

    Grazie ancora per le risposte, sono riuscito a raggiungere il mio obiettivo con il vostro aiuto. Ora sto iniziando a progettare una maschera per il login. Vi ringrazio ancora .
Devi accedere o registrarti per scrivere nel forum
8 risposte