Creare un calendario per Microsoft Access 2007 tramite VBA.

In questo articolo vedremo l'utilizzo del linguaggio Visual Basic appliation per il programma Microsoft Access 2007, in particolare aggiungere un calendario in visualizzazioni dati.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

In questo articolo, vedremo come creare un calendario da utilizzare nelle maschere di Microsoft Access 2007, tramite codice Visual Basic Application. Il calendario verrà visualizzato al click di un pulsante e visualizzare in una casella di testo, la data selezionata.

 

Figura 1

 

Creazione del database.
Prima di vedere il codice Visual Basic Application, occorre creare il database,  si crea un nuovo database vuoto, fatto ciò dobbiamo creare delle maschere nella quali tramite un pulsante richiama la maschera del calendario, la maschera calendario avrà il compito di inserire la data selezionata in una casella di testo della maschera che ha aperto il calendario.
Si crea un nuova maschera, selezionare la voce di menu crea e poi nella barra degli strumenti, la voce struttura maschera. Questa maschera avrà il compito di visualizzare il calendario.
Come mostrato in figura 2

 

Figura 2

 

Tramite il pulsante inserisci controllo ActiveX, nella finestra che viene aperta (figura 2) selezioniamo la voce “Controllo Calendario 12.0” selezioniamo tale voce e confermiamo tramite il pulsante ok.
Fatto ciò inseriamo due pulsanti, uno per la conferma della data selezionata il quale avrà come testo la dicitura “Conferma”, e l’altro per la chiusura della finestra con la dicitura “Chiudi”, senza che venga riportata la data selezionata. La finestra dev’essere simile come riportata in figura 2.
Terminata la fase per l’impostazione della finestra, scriviamo il codice VBA, che avrà il compito di riportare la data selezionata.
Selezioniamo il pulsante quello  per la chiusura della finestra, e nell’evento click di tale pulsante, inseriamo il seguente codice che permette la chiusura della maschera.
Codice Vba per il pulsante della chiusura:
Private Sub Chiudi_Click()
    On Error GoTo Errore
    DoCmd.Close
    Exit Sub
Errore:
    MsgBox "Si è verificato il seguente errore: " & Err.Description, vbCritical, "Calendario"
 
End Sub
Sempre nell’editor VBA, inseriamo due variabili pubbliche, che avranno il compito di riportare il nome della maschera e del controllo che andrà aggiornato.
Il codice va messo in alto, come mostrato qui di seguito.
Option Compare Database
Public NomeControllo As String
Public NomeMaschera As String
 
Per l’evento click del pulsante conferma, andrà inserito il codice che avrà il compito di riportare nel controllo della maschera che ha avviato il calendario la data selezionata.
Di seguito si riporta il codice per l’evento click del pulsante di conferma.
 
Private Sub Conferma_Click()
On Error GoTo Errore
    Dim Data As String
    'Rilevo la data
    Data = Calendario.Value
    Dim intConta As Integer
    'ciclo per tutte le machere e poi per tutti i controlli
    Dim IntContaMaschere As Integer
    For IntContaMaschere = 0 To CurrentProject.AllForms.Count - 1
        If Application.Forms(IntContaMaschere).Name = NomeMaschera Then
            Dim intContaControlli As Integer
            For intContaControlli = 0 To Application.Forms(IntContaMaschere).Controls.Count - 1
            If Application.Forms(IntContaMaschere).Controls.Item(intContaControlli).Name = NomeControllo Then
                'Trova la mashcera e controllo, imposto la data
                Forms(Application.Forms(IntContaMaschere).Name).Controls(Application.Forms(IntContaMaschere).Controls.Item(intContaControlli).Name).SetFocus
                Forms(Application.Forms(IntContaMaschere).Name).Controls(Application.Forms(IntContaMaschere).Controls.Item(intContaControlli).Name).Text = Data
                'chiudo la finestra
                DoCmd.Close
                Exit Sub
            End If
            Next intContaControlli
                       
        End If
    Next IntContaMaschere
    'chiudo la finestra
    DoCmd.Close
    Exit Sub
 
Errore:
    MsgBox "Si è verificato il seguente errore: " & Err.Description, vbCritical, "Calendario"
End Sub
 
Creazione della maschera di esempio.
Terminata la creazione della maschera per la visualizzazione del calendario, non ci resta che creare una maschera di esempio.

 

 

Figura 3
La maschera dovrà avere tre caselle di testo, tre etichette ed un pulsante il quale avrà il compito di richiamare la maschera per la selezione della data. L’aspetto della maschera dev’essere simile a quella illustrata in figura 3.
Di seguito si riporta il codice per l’evento click del pulsante
Private Sub calendario_Click()
On Error GoTo Errore
 
    'apro la maschera calendario
    DoCmd.OpenForm "Calendario"
    'imposto le variabili pubbliche con il nome del controllo e della maschera
    Form_Calendario.NomeControllo = Me.txtdata.Name
    Form_Calendario.NomeMaschera = Me.Name
    Exit Sub
 
Errore:
    MsgBox "Si è verificato il seguente errore: " & Err.Description, vbCritical, "Calendario"
   
End Sub
 
Conclusioni:
In questo articolo, abbiamo visto come migliorare l’interfaccia grafica delle maschera con un calendario, il tutto tramite il codice Visual Basic Application. Tramite la parola Download è possibile scaricare il file Microsoft Access 2007 di esempio, completo del codice VBA.

 

Download esempio