Tratto dallo speciale:

Gestione di un Database Access per ordinazioni

di Gianni Nigro

Pubblicato 4 Agosto 2009
Aggiornato 25 Aprile 2014 18:34

Come realizzare un pannello di controllo per utilizzare un database Access per gestire ordini e ordinazioni, adatto a una piccola attività commerciale.

Dopo aver visto come realizzare un Database con Access – da utilizzare su un palmare per prendere ordini e ordinazioni – vediamo ora come gestirlo attraverso un pannello di comando con 4 pulsanti.

Visualizzato automaticamente all’apertura dell’applicazione, permetterà di gestire il DB aprendo il form per la registrazione delle ordinazioni, il report per controllare il menu, quello per determinare il conto del cliente e infine dando all’utente stesso la possibilità di azzerare i dati relativi alle ordinazioni di un tavolo (scarica l’esempio). In Access, un pannello di comando si può creare utilizzando una maschera vuota, che andremo ad arricchire progressivamente con nuovi oggetti.

Barra multifunzione > scheda Crea > gruppo Maschere > Maschera vuota.

Per inserirvi gli oggetti di cui abbiamo bisogno, inseriamo in Visualizzazione Struttura un’etichetta con la quale scrivere “ORDINAZIONI“, inseriamo accanto un’immagine che successivamente verrà trasformata in pulsante e salviamo la maschera col nome del desideriamo, ad esempio “Ristorante La libecciata”.

In Visualizzazione Maschera il DB dovrebbe avere all’incirca il seguente aspetto:

Per far sì che all’apertura del file il DB visualizzi automaticamente il pannello di comando, è necessario compiere i seguenti passi:

Pulsante Office > Opzioni di Access > Database corrente > Opzioni applicazione > Visualizza maschera > nome della maschera prescelta >OK.

Da questo momento, ogni volta che verrà aperto il DB, esso si presenterà con il pannello di comando in primo piano.

Ora è necessario trasformare l’immagine in un pulsante in grado di aprire la maschera delle ordinazioni. Procediamo con questi passi:

In Visualizzazione struttura selezioniamo l’immagine e nella Finestra delle proprietà dell’immagine selezioniamo la scheda Evento.

Sulla riga “Su clic”, nella colonna di destra clicchiamo il pulsantino con tre puntini.

Appare la finestra di dialogo “Scegli generatore”: clicchiamo su Generatore di macro.

Appare una griglia con una prima colonna denominata “Azione”. Nella prima riga della colonna, da menu a tendina, scegliamo ApriMaschera.

In basso alla griglia, sezione Argomenti azione, possiamo scegliere quale maschera dovrà essere aperta dalla macro collegata al pulsante, nel nostro caso la maschera frmOrdinazioni.

Analogamente, si andrà a creare la seconda etichetta (“MENU“) e la relativa immagine sarà trasformata in pulsante, in grado di aprire il report frmMenuStampa, però con un paio di differenze: invece che Apri maschera, nel menu a tendina si sceglierà Apri report.

Poi, nella sezione “Argomenti azione”, alla riga “Nome report”, sceglieremo frmMenuStampa.

Tornando in Visualizzazione Maschera: cliccando sull’immagine che accompagna l’etichetta “MENU” si aprirà il report stampabile del menu.

La terza immagine inserita è un pulsante che apre il report per il conto. Quando si clicca sopra il pulsante/immagine, apparirà un piccolo form che chiede il numero del tavolo per il quale deve essere rilasciato il conto.

Dopo aver inserito il numero del tavolo e cliccato su OK, apparirà il relativo report con tutte le informazioni riguardanti le ordinazioni partite da quel tavolo, compreso il conto.

Riprendiamo il DB del ristorante e ripassiamo con precisione le modalità d’uso. All’apertura del file del DB viene visualizzato il pannello di comando e il cameriere clicca sull’immagine relativa a ORDINAZIONI: appare il form cercato, in cui inserire le scelte.

Per ogni ordinazione diversa, che parta dallo stesso tavolo, è necessario creare un nuovo record: se nella barra in basso il numero del record attuale è 15, è necessario con un click creare il record numero 16 altrimenti, se è già stato ordinato un certo piatto per due persone, una nuovo e diverso ordine andrà a sovrascriversi. N.B.: ogni ordinazione dallo stesso tavolo è un nuovo record!

L’azione che permette il passaggio delle informazioni dal form delle ordinazioni alla tabella delle stesse ordinazioni è proprio la creazione di un nuovo record.

Al momento della presentazione del conto, o a richiesta del cliente che desideri verificare la situazione momentanea, il cameriere può clicare sul pulsante IL CONTO e informare il cliente o stampare il report.

I menu possono essere stampati dal report visualizzato quando si clicca sull’immagine dell’etichetta MENU. Se viene modificato il menu in qualche sua parte, nella omonima tabella, il report aggiornerà automaticamente i dati.

Access non fornisce strumenti adatti ad una facile e automatica cancellazione dei dati. Non restano che due alternative.

La prima è fornire l’applicazione di una macro che apra una query che seleziona le ordinazioni relative al tavolo scelto, e un successivo intervento manuale di chi gestisce il database, atto a cancellare tutte le ordinazioni.

La seconda, scrivere il codice di una macro in VBA.

L’impresa di scrivere una macro in codice di programmazione non è un compito impossibile, ma questa strada esula dall’obiettivo di questo Tutorial, per cui forniremo un metodo pratico e sbrigativo ma alla portata di tutti.

Creiamo anzitutto un quarto pulsante.

Mediante un procedimento analogo ai precedenti, creiamo una macro, relativa alla quarta immagine, che apra la query qryIdentificaTavolo. Quando, in Visualizzazione maschera, si fa click sopra l’immagine relativa all’etichetta AZZERAMENTO, apparirà il piccolo form che chiede di inserire il numero del tavolo.

Una volta compiuta questa azione e fatto clic su OK nel form, ci troveremo di fronte ai record relativi soltanto alle ordinazioni compiute dal tavolo in questione. Sarà a questo punto sufficiente selezionare i record che contengono le ordinazioni, e premere il tasto Canc. Le ordinazioni di quel tavolo saranno azzerate.