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
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 Sì 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.