Buongiorno a tutti.
Asnaldo, secondo me sbagli candeggio.
Nel senso che, ad intuito, se hai bisogno di immettere un campo precompilato tramite un tasto, hai strutturato male le tabelle e sopratutto i collegamenti, perchè quello che tu cerchi di fare manualmente, lo dovrebbe fare in automatico il database.
Ora non so come sia strutturato tutto il database,ma da quello che dici ho l'impressione che hai un mega tabellone chiamato ordini e dove immetti tutti i dati.
La soluzione che tu cerchi di attuare, a me personalmente non piace, ma naturalmente è solo una mia opinione, perchè anche se il database è a tuo uso e consumo, mettendo un tasto per ogni negozio, non lo rende dinamico e non modificabile e se nel caso avrai bisogno di aggiungere al volo un nuovo negozio. dovrai mettere mano al codice sorgente, aggiungere un nuovo pulsante etc etc, cosa che sinceramente è scomoda e poco ottimale.
Secondo me la via più ottimale e semplice che ti risolve al volo un sacco di cose, senza dovere mettere mano a codici VBA macro o altro, è quella di sfruttare la naturale predisposizione dei database e trattare il negozio come un record normale.
Mi spiego. ( la soluzione che attuerei io)
Io creerei una tabella dedicata all'inserimento dei dati anagrafici dei vari negozi, ed una tabella ordini. (naturalmente avrai anche altre tabelle prodotti pressuppongo, ed anche quelle devono essere ben collegate con la tabella ordini)
Collegherei le due tabelle con un ID di riferimento al negozio.
Dalla maschera ordini in apertura completamente vuota,( ma collegata ad una query che mi richiama tutti i dati dalle varie tabelle che mi interessano) al dipendente, invece di cliccare un tasto, farei scegliere da una combobox il negozio corrispondente.
Automaticamente si crea un nuovo ordine univoco collegato a quel negozio e quindi poi andrei a popolare manualmente gli altri dati dell'ordine.
In questo modo, non ti complichi la vita con il codice VBA, non devi creare variabili globali, oppure passare valori tra una routine e l'altra, non devi gestire l'apertura, chiusura ed aggiornamento di maschere separate, controlli etc etc, gestire errori imprevisti (del tipo impossibile passare al controllo perchè non è attivo ),ed hai un database perfettamente normalizzato.
Soprattutto da una semplice ed unica maschera, (quella ordini) con i corretti collegamenti tra tabelle, ed una giusta e semplice query di selezione, riesci a recuperare in una sola interrogazione al motore del database, tutti i dati necessari per il nuovo ordine, tutto in automatico.
Ad esempio puoi immettere il negozio, e far apparire in automatico l'indirizzo o le varie note, poi, immettere l'articolo ordinato e visualizzare tutti i dati corrispondenti a quell'articolo etc etc, magari puoi mettere anche il nome del dipendente che inserisce l'ordine e chi ha più ne metta.
Naturalmente in fase di salvataggio dei dati, nella tabella ordini verranno archiviati solamente i dati relativi all'ordine e non tutti i dati che hai visualizzato a schermo.
Tutto però dipende dalla struttura base del database.
Inizialmente mentalmente può sembrare più semplice ed intuitivo agire a valle tramite le maschere od il codice, ma invece è fondamentale avere una struttura a monte ben creata ed organizzata ed una volta che si impara bene a creare i collegamenti tra le tabelle, e sopratutto sfruttare il codice nativo dei database che sono le query e l'SQL, tutto si risolve (magari fosse vero) con pochi click e pochi passaggi.
Naturalmente come detto questa è una mia proposta. Se vuoi continuare la strada del pulsante, mi sembra di ricordare, ma non sono sicuro perchè è una soluzione che non attuo mai, devi prima creare un nuovo record manualmente, via codice, e poi riempire la casella con il dato corrispondente, perchè altrimenti appena immetti un altro valore in un altra casella, automaticamente il database si posiziona su nuovo record cancellando il testo che hai inserito nella casella del negozio, sempre che, si riesca facilmente a visualizzarlo, proprio perchè passare un valore ad un controllo non attivo non è proprio cosa semplice ed intuitiva.
Correggetemi se sbaglio.