Descrizione

Progetto: VI Parte.

Obiettivi della lezione

Saper gestire un magazzino

Indice lezione

Lezione 30  -  Database

30.1          La maschera Copertina.

Dati sulla lezione

Versione:

v1.0

Tempi:

1 ½  ora / 90 minuti

Data svolgimento lezione:

03 Giugno 2003

Autore dei contenuti:

Giuliano Luca

Autore materiali didattici:

Togni Francesca

 

La Pratica    

30.1  -  La maschera Copertina

 

La maschera Copertina avrà il compito di contenere tutti i pulsanti per l’apertura delle altre maschere, più un campo che farà riferimento alla tabella Anni e che servirà come riferimento per i filtri da applicare.

Per la sua costruzione posizionarsi sull’oggetto Maschere

 

e premere il pulsante .

La maschera si presenterà come segue:

Questa volta la maschera non è legata a nessuna tabella, quindi si procederà immediatamente con la creazione dei pulsanti per l’apertura delle varie maschere.

Visualizzare la Casella degli strumenti premendo il tasto . Selezionare l’icona per la creazione guidata del tasto Comando .  Posizionarsi sul Corpo della maschera e tracciare un rettangolo tenendo premuto il tasto sinistro del mouse e trascinandolo in diagonale. Quando verrà rilasciato il pulsante, dalla finestra che apparirà, scegliere la Categoria  Operazioni su maschere e dalle Azioni  Apri maschera.

Clickando su Avanti si potrà scegliere quale delle maschere proposte dovrà essere collegata al tasto. Si scelga “FilatiColorati”.

Procedere alla finestra successiva premendo Avanti. Apparirà un’ulteriore finestra di dialogo in cui sarà possibile stabilire se la maschera dovrà essere aperta visualizzando tutti i record che sono contenuti o se bisognerà applicare dei particolari filtri.

Si lasci sempre impostato come valore il secondo, in quanto i filtri da applicare alle maschere sono già stati  impostati laddove occorrevano in fase di costruzione della maschera stessa (vedi MAGAZZINO).

Dalla videata che seguirà sarà possibile scegliere se visualizzare sul pulsante un’icona o impostare un testo. Per maggior chiarezza è consigliato scrivere sul pulsante a quale Maschera si riferisce, quindi inserire nella casella di testo relativa alla voce Testo “Filati Colorati”.

Ultimo passaggio è quello di dare un nome appropriato al pulsante di comando.

Premere Fine.

A questo punto la maschera Copertina si presenterà come segue:

Attraverso lo stesso procedimento appena descritto creare anche i pulsanti per l’apertura delle maschere “Fornitori”, “Grezzo” e “Magazzino”, dando ad ogni pulsante il nome relativo alla maschera che deve essere aperta.

Sistemare i tasti in modo da ottenere un’interfaccia gradevole, cambiando colore di sfondo alla maschera stessa, modificando colore e grandezza delle scritte nei tasti appena creati, inserendo un titolo in cima (come già operato nella costruzione delle altre maschere).

Alla fine si potrà avere un’impostazione simile alla seguente:

Come ogni maschera iniziale che si rispetta dovrà contenere anche un pulsante per la chiusura dell’applicazione (da non confondere con la chiusura maschera), in modo da terminare il programma. La sua costruzione avviene come per tutti gli altri pulsanti, solo che questa volta la Categoria  e relativa Azione dovranno essere:

Si scelga pure lo STOP come icona da inserire e chiamare il pulsante ChiudiApplicazione.

 

Ora bisogna inserire il campo che servirà per la scelta dell’anno. Dalla Casella degli strumenti scegliere l’oggetto Casella Combinata  e creare un’area sul Corpo della maschera. Appena si rilascerà il pulsante del mouse apparirà la seguente finestra di dialogo:

La ricerca del valore che deve essere inserito va effettuata nella tabella “Anni”, già inserita nel database scaricato precedentemente e su cui si sta lavorando.

Clickando su Avanti, apparirà l’elenco delle tabella tra le quali scegliere quella che interessa.

Proseguire e spostare nella finestrella di destra l’unico campo riportato nella tabella “Anni”

La finestra che si presenta premendo il tasto Avanti propone di allargare e/o stringere il campo secondo le proprie esigenze. Dimensionalo come meglio si crede e proseguire.

Ultimo compito è quello di scrivere il contenuto dell’etichetta assegnata alla casella combinata.. Premere su Fine.

Sistemare il campo dandogli un aspetto più gradevole. Un esempio potrebbe essere

Adesso si può lavorare sulle proprietà del campo Anno che si è appena creato, in modo da impostare come valore visualizzato di default quello corrispondente all’anno in corso. Selezionare con un click il campo Anno e scegliere il pulsante  dalla Barra degli strumenti.

Prima di tutto cambiare il Nome dell’elemento e scrivere Anno, dopodiché porre la proprietà Solo in elenco al valore e porre come Valore predefinito =Year(Date()). Con questa istruzione si estrapola l’anno dalla data di sistema. Attenzione: per non incorrere in errori tenere sempre aggiornata la data del proprio PC.

Prima di aprire la maschera per dare uno sguardo al risultato ottenuto, bisogna ancora impostare le proprietà della maschera. Aprirle e modificarle come segue:

 

Si può inoltre impostare l’apertura della maschera a tutto schermo. Per farlo selezionare dalla finestra delle proprietà la scheda Evento, quindi posizionarsi in corrispondenza della voce Su apertura e scegliere dal menu a tendina [Routine evento]

Clickare successivamente sul pulsante  che farà apparire l’ambiente di lavoro VBA.

Completare la routine associata come segue

Questo comando permette di aprire a pieno schermo la videata della Copertina ed anche le altre maschere. Salvare e chiudere la finestra.

 

Salvare la maschera chiamandola Copertina.

 

Come riportato nella precedente lezione si vuole riportare sulla maschera principale un nuovo pulsante che si dovrà occupare dell’aggiornamento della tabella Anni e della tabella Magazzino.

Questo pulsante sarà legato ad un modulo in VBA che permetterà di controllare:

1)      se l’anno che si vuole inserire è già presente nella tabella.

2)      se l’anno è conseguente al valore massimo contenuto nella tabella.

In caso non vi siano anomalie verrà inserito il nuovo valore in tabella tramite l’esecuzione di una stringa SQL, e successivamente verrà aggiornato il Magazzino.

Per creare tale pulsante basterà selezionare il tasto dalla Casella degli strumenti, trascinare il mouse sul Corpo della maschera e rilasciare il tasto in modo da far apparire la solita finestra di dialogo.

A differenza delle altre volte, scegliere Annulla.

Il tasto dovrà ora essere impostato. Per prima cosa visualizzarne le proprietà ed apportare le seguenti modifiche:

Scegliere la scheda Evento  e riportare la dicitura [Routine evento] in corrispondenza della voce Su clic.

entrare nell’ambiente VBA tramite la pressione del pulsante .

Riportare il seguente codice:

 

Private Sub AnnoNuovo_Click()

 

Dim AnnoRiferimento     ' Contiene il valore dell'anno nuovo che verrà inserito

Dim StrSQL As String    ' Contiene le stringhe SQL da eseguire

 

    ' Chiede qual è l'anno da riportare nella tabella Anni

    AnnoRiferimento = InputBox("Inserire il valore dell'Anno nuovo", "Nuovo Anno")

   

    ' Controlla che il valore inserito sia un numero

    If Not IsNumeric(AnnoRiferimento) Then

        MsgBox "Il valore inserito non è valido. Non verrà effettuato alcun aggiornamento", vbCritical, "Attenzione"

        Exit Sub

    End If

   

    ' Controlla che il valore inserito sia valido, cioè non sia nullo o <0

    If IsNull(AnnoRiferimento) Or AnnoRiferimento < 0 Then

        MsgBox "Il valore inserito non è valido. Non verrà effettuato alcun aggiornamento", vbCritical, "Attenzione"

        Exit Sub

    End If

   

    ' Controlla che il valore inserito sia successivo al massimo inserito nella tabella Anni

    If AnnoRiferimento <> Val(DMax("Anno", "Anni")) + 1 Then

        MsgBox "Il valore inserito non è valido. Non verrà effettuato alcun aggiornamento", vbCritical, "Attenzione"

        Exit Sub

    Else

        ' Aggiunge il nuovo valore nella tabella Anni

        StrSQL = "INSERT INTO Anni ( Anno ) SELECT '" & AnnoRiferimento & "' AS AnnoNuovo;"

        DoCmd.SetWarnings False

        DoCmd.RunSQL StrSQL

        DoCmd.SetWarnings True

       

        ' Aggiorna il magazzino copiandolo nel nuovo anno di gestione ed azzerando i valori delle

        ' quantità vendute e acquistate nel corso dell'anno

        StrSQL = "INSERT INTO Magazzino ( CodiceColorato, Giacenza, QuantitàVendita, QuantitàAcquisto, Anno ) "

        StrSQL = StrSQL & "SELECT Magazzino.CodiceColorato, Magazzino.Giacenza, 0 AS Venduto, 0 AS Acquistato, '" & AnnoRiferimento & "' AS AnnoNuovo "

        StrSQL = StrSQL & "FROM Magazzino "

        StrSQL = StrSQL & "WHERE (((Magazzino.Anno)=Val('" & AnnoRiferimento & "')-1));"

        DoCmd.SetWarnings False

        DoCmd.RunSQL StrSQL

        DoCmd.SetWarnings True

       

    End If

   

    MsgBox "Aggiornamento avvenuto", vbInformation, "Aggiornamento"

   

End Sub

 

Salvare la procedura e chiudere la finestra. Sistemare il tasto in modo gradevole e salvare la maschera.

 

 

Non è obbligatorio inviare l’esercizio al tutor.

Feedback

Per chiarimenti, si prega di lasciare la domanda direttamente sul Forum della piattaforma Maestra.