Rubrica telefonica con Microsoft Access

TIP NR.2: Costruiamo passo passo una semplice rubrica telefonica con Microsoft Access

Apriamo Microsoft Access, quindi selezioniamo 'Tabella' dal menu 'Inserisci', e di seguito i campi definiti come segue in 'Modalità struttura' (figura 1).

Impostiamo il campo contatore 'IDRubrica' come 'Chiave primaria', i campi di testo RAG_SOCIAL,INDIRIZZO e LOCALITA ad una lunghezza di 50 caratteri, il campo di testo TELEFONO a 25 caratteri, il campo di testo TELEFAX a 15 caratteri ed infine il campo Memo NOTE: ricordiamo che i campi di tipo 'Memo' sono campi di testo a lunghezza variabile.

Salviamo la nostra tabella con il nome 'Rubrica' nel nostro database che può anche essere un database vuoto.

A questo punto iniziamo con la costruzione della maschera, per fare questo ci avvaliamo della Creazione guidata Maschera: menu 'Inserisci', quindi 'Maschera' ed infine 'Creazione guidata Maschera' ( figura 2 ).

Selezioniamo la tabella 'Rubrica', creata precedentemente, come origine dei dati per l'oggetto Maschera che stiamo creando, anche se al momento la tabella non contiene alcun record ( figura 3 ).

Nell' esempio mostrato qui sopra la tabella 'Rubrica' conteneva altri 3 campi, che ora però ignoriamo, quindi selezioniamo soltanto i campi 'IDRubrica', RAG_SOCIAL, INDIRIZZO, LOCALITA, TELEFONO, TELEFAX e NOTE, facciamo quindi click sul pulsante 'Avanti' : ciò significa che i campi non selezionati continueranno a far parte della tabella e quindi potranno anche contenere dei dati, ma non verranno mai visualizzati nella maschera.

Selezioniamo il layout 'A colonne' come mostrato in figura 5

Per quanto riguarda l' immagine di sottofondo del nostro progetto, si tratta di una immagine incorporata di nome globo.wmf (windows metafile) la quale proviene da una versione precedente di Access. Si può comunque modificare agendo sulle proprietà Tipo immagine e Immagine della maschera, come si vede in figura 6 .

A questo punto assegnamo il titolo, che diventa anche il nome con il quale l'oggetto maschera verrà salvato nel nostro database: la nostra maschera si chiamerà 'Rubrica'; prima di fare click su 'Fine'selezioniamo l'opzione 'Modificare la struttura della maschera', quindi apparirà la finestra seguente che è la maschera stessa in modalità 'visualizzazione struttura': questo ci permetterà di apportare tutte lemodifiche e le personalizzazioni che saranno necessarie al nostro progetto (figura 7)

Notiamo come siano stati generati e posizionati 2 controlli per ciascun campo: un controllo di tipo'Etichetta' per la descrizione del campo ed un controllo di tipo 'Casella di testo' per rappresentare il segnaposto in corrispondenza del quale verranno visualizzati i dati quando verranno caricati dei recordsnella tabella sottostante.

Naturalmente una delle funzioni della maschera stessa è anche quella di permettere l'inserimento di dati, cioè di Nominativi, nella nostra tabella Rubrica ( figura 8 )

Questa operazione può avvenire in qualsiasi momento, anzi è consigliato introdurre qualche nominativo sin da ora, in modo da poter comprendere maggiormente attraverso dei dati di esempio le varie funzionalità della maschera.

Controlliamo ora che sia abilitata la visualizzazione delle sezioni 'Intestazione maschera' e 'Piè di pagina maschera' rispettivamente in corrispondenza del limite superiore ed inferiore della maschera, sempre in modalità 'visualizzazione struttura' (qualora non vengano visualizzate, abilitare la voce relativa nel menù 'Visualizza', come in figura 9).

Non selezionate la voce 'Int/piè pagina pagina' perchè al momento creerebbe un pò di confusione.

A questo punto procediamo selezionando la sezione superiore della maschera, la sezione 'Intestazione maschera', all'interno della quale posizioneremo ora un controllo aggiuntivo di tipo 'Casella combinata': lo scopo di questo controllo sarà quello di poter 'saltare' da un record ad uno diverso, anche non consecutivo, senza aver bisogno di 'scorrere' tutti i records con la barra di navigazione records standard che verrà mostrata automaticamente in modalità 'dati' in corrispondenza del bordo inferiore della maschera stessa.

Posizioniamoci quindi in alto nella sezione 'Intestazione maschera' e quindi facciamo click sul pulsante 'Casella degli strumenti' presente nella Barra degli Strumenti in alto (si tratta dell'icona a forma di chiave inglese e martello): selezioniamo quindi un nuovo controllo di tipo 'Casella combinata' come già anticipato più sopra e 'trasciniamolo' in corrispondenza del numero 3 circa del righello orizzontale, in modo da allineare il controllo con la 'fila' di caselle di testo dei campi della maschera ( figura 10).

Impostiamo la proprietà 'Etichetta' del controllo 'Etichetta' su 'VAI A' , la proprietà 'Nome' del controllo'Casella combinata' a 'cmbVai', le proprietà rispettivamente 'Tipo origine riga' e 'Origine riga' dello stesso controllo su 'Tabella/Query' e: 'SELECT Rubrica.* FROM Rubrica ORDER BY [Rubrica].[RAG_SOCIAL];' come mostrato in figura 11.

Infine la proprietà evento 'Dopo aggiornamento' su [Routine evento], quindi, selezionando il pulsantino con i 3 puntini laterale, introdurre il codice che segue.. ( figura 12 ) Vedi anche figura 13.

Perchè tutto questo ? Perchè vogliamo che allo 'scattare' dell'evento 'Dopo aggiornamento' o'AfterUpdate' del controllo 'VAI A' (la lista dei nominativi della rubrica, cioè la lista di tutti i records della tabella sottostante), la maschera visualizzi automaticamente l'intero record corrispondente, visualizzando anche tutti gli altri campi, nell'esempio il Numero di Telefono, il Telefax, ecc..

Per realizzare questo occorre dire ad Access che l'identificativo di record del Recordset sottostante alla maschera deve essere spostato in avanti (o indietro) rispetto a quello corrente ed esattamente ciò avviene per merito della istruzione:

DoCmd.GotoRecord ....(cmbVai.ListIndex + 1)

dove cmbVai.ListIndex rapresenta la proprietà del controllo 'Casella combinata' di nome 'cmbVai' che rappresenta proprio il valore dell'Identificativo di record che ci serve, nella fattispecie il numero di 'riga' (orecord) in cui si trovano i dati da visualizzare, che è il medesimo sia per la casella combinata sia per il recordset principale della maschera: attenzione ! occorre sempre che le 'righe' siano ordinate con lo stesso criterio, altrimenti si otterrebbero dei risultati incongruenti.

Spostiamoci adesso sulla sezione 'Piè di pagina maschera', quella in fondo, questa volta, ed aggiungiamo 4 nuovi controlli di tipo 'Pulsante di comando' selezionandoli uno per uno dalla 'Casella degli strumenti'.

A questi 4 nuovi controlli daremo il nome rispettivamente di cmdEsci, cmdAggiungi, cmdElimina e cmdStampa ( figura 14 )

Notiamo che quando 'rilasciamo' il mouse per 'trascinare' il nuovo pulsante, parte automaticamente la procedura 'Creazione guidata Pulsante di comando' che accetteremo soltanto per il pulsante 'cmdEsci', quello che serve all'utente per uscire e per chiudere la maschera, mentre per gli altri 3 basta fare click su 'Annulla': i controlli vengono creati ugualmente, ma poi occorre impostare manualmente il valore della proprietà 'Caption' (l'etichetta del pulsante) e le routine 'evento' , cioè il codice VBA che dovrà essere eseguito qundo l'utente farà 'click' sul pulsante.

Riferendoci per ora il pulsante 'cmdEsci', selezioniamo nella prima schermata della procedura guidata laCategoria 'Operazioni su maschere' e l'Azione 'Chiudi maschera': l'icona con la porticina che indica l'uscita verrà selezionata di conseguenza, quindi facciamo click su 'Avanti' ( figura 15).

Tralasciamo per il momento il codice VBA degli altri pulsanti, che riprenderemo in un altro tutorial, in ogni caso nel file da scaricare nell'area 'Tutorial Download' (riservata agli iscritti alle nostre newsletters)troverete il codice integrale e la maschera perfettamente funzionante (vedi avvertenza nel riquadro in fondo alla pagina).

A questo punto occorre creare il controllo 'Gruppo di opzioni' di nome 'FiltroRubrica', da posizionare nella sezione 'Piè di pagina maschera'

Seguite questo collegamento per vedere il tutorial relativo:

Costruire un controllo gruppo di opzioni con Microsoft Access

e poi ritornare esattamente a questo punto:

una volta costruito il gruppo di controlli, basterà collegare la proprietà evento 'Dopo aggiornamento'del gruppo di opzioni al codice VBA che segue ( figura 16).

La proprietà Value del controllo Gruppo di opzioni di nome FiltroRubrica viene 'passata' alla routine Sub che viene mostrata qui sotto, la quale, in base al valore numerico 1-27 restituirà il parametro stringaper la clausola WHERE LIKE necessaria per ottenere l'applicazione istantanea ed automatica del filtro desiderato ( figura 17).

Questa è la routine VBA di nome 'AggiornaRubrica' che permetterà alla maschera di impostare il filtro opportuno sul recordset sottostante in modo da ottenere l'azione richiesta e cioè la visualizzazione dei soli records filtrati in base alla lettera dell'alfabeto (A-Z) o di tutti i records se è stato premuto il pulsante 'Tutti'

Private Sub AggiornaRubrica(strValue As Integer)

Select Case strValue
Case 1
strFilter = "[Aà]*"
Case 2
strFilter = "B*"
Case 3
strFilter = "[C]*"
Case 4
strFilter = "D*"
Case 5
strFilter = "[Eè]*"
Case 6
strFilter = "F*"
Case 7
strFilter = "G*"
Case 8
strFilter = "H*"
Case 9
strFilter = "[Iì]*"
Case 10
strFilter = "J*"
Case 11
strFilter = "K*"
Case 12
strFilter = "L*"
Case 13
strFilter = "M*"
Case 14
strFilter = "[N]*"
Case 15
strFilter = "[Oò]*"
Case 16
strFilter = "P*"
Case 17
strFilter = "Q*"
Case 18
strFilter = "R*"
Case 19
strFilter = "[S]*"
Case 20
strFilter = "T*"
Case 21
strFilter = "[Uù]*"
Case 22
strFilter = "V*"
Case 23
strFilter = "W*"
Case 24
strFilter = "X*"
Case 25
strFilter = "[Y]*"
Case 26
strFilter = "[Z]*"
Case 27 ' TUTTI
strFilter = ""

End Select

If strFilter <> "" Then
Me.FilterOn = True
Me.Filter = "[RAG_SOCIAL] Like " & Chr$(34) & strFilter & Chr$(34)
Else
Me.FilterOn = False
End If

Me.Requery

End Sub

In particolare è l'ultima istruzione della Subroutine, e cioè 'Me.Requery' che provoca lo scattare dell'evento 'su corrente' o Form_Current del Recordset sottostante e quindi del codice VBA ivi contenuto ( figura 18 )

La terz' ultima riga viene riportata interamente qui:

cmbVai.RowSource = "SELECT Rubrica.* FROM Rubrica WHERE [RAG_SOCIAL] Like " & Chr$(34) & strFilter & Chr$(34) & " ORDER BY Rubrica.RAG_SOCIAL;"

chr$(34) è il codice ASCII che sta per virgolette (")

Lo scopo di questa parte di codice è quello di 'sincronizzare' il controllo 'cmbVai', cioè la lista di scorrimento dei records che sta in alto, nella sezione 'Intestazione maschera', con il Recordset della maschera.

Se la variabile stringa strFilter è pari a stringa vuota ("") ciò significa che l'utente ha fatto click su 'Tutti' oppure la maschera è in fase di inizializzazione o di prima apertura, quindi il recordset di maschera viene impostato a 'Tutti i records' = SELECT Rubrica.* FROM Rubrica (NOTA: SENZA CLAUSOLA 'WHERE')

Se invece la variabile stringa 'strFilter' contiene una valore (quello impostato dalla Sub 'AggiornaRubrica' ) allora viene specificata la clausola WHERE che imposta il FILTRO sul campo RAG_SOCIAL : 'mostra soltanto i records della tabella Rubrica che soddisfano la condizione 'RAG_SOCIAL Like "A*", "B*", ecc.

Ecco infine l'aspetto finale della nostra maschera 'Rubrica' in modalità 'Dati': si tratta di una vera e propra applicazione Access in minuatura e perfettamente funzionante! ( figura 19 ).

Proviamo a selezionare un altro record sulla lista di scorrimento in alto (VAI A:) ecco che la maschera mostrerà i campi relativi al nuovo record selezionato istantaneamente. Proviamo ora a 'filtrare' i nominativi della rubrica con i pulsanti corrispondenti alle lettere dell'alfabeto posti in basso e vediamo cosa succede( figura 20 )

TIP NR2: costruiamo passo passo una semplice rubrica telefonica con Microsoft
Access (fine)


Avvertenza !

Il file zip dell'esempio Rubrica Telefonica Avanzata con Access (2013) contenente il progetto completo incluso il codice vba in chiaro di cui si discusso in questo tutorial, disponibile nell'area 'Videotutorial Download' riservata agli iscritti ai nostri corsi on line.

Nella colonna di destra puoi vedere una anteprima della 'Videotutorial Download area' e quanti e quali altri progetti Access, Excel, VBA sono disponibili.

Acquista anche uno solo dei nostri corsi per avere immediatamente accesso alla 'Videotutorial Download Area': facile, basta un clic:

http://www.mc2.it






Tutorials su Microsoft Access


Home page MC2 E-Learning



Dr.Maurizio Cucchiara

Amministratore unico
MC2 E-Learning S.a r.l.
Formazione per il Web
autore del corso:
"Corso Base di Microsoft Access"
disponibile on line su questo sito
http://www.mc2.it/html/access.html

Condividi sui social network:

Social buttons



Iscriviti al nostro
nuovissimo
canale Youtube!


Iscrivi al nostro canale Youtube



Potrai restare aggiornato
sui nostri pi recenti
video-tutorial su:
Microsoft Access ed Excel
e molto altro...



Cerca sul web con Google:




Guarda il video-tutorial
sul nostro canale Youtube:


Rubrica telefonica avanzata 2013

NOVITA'!

'VIDEO TUTORIAL
DOWNLOAD AREA'

(Fai clic sull'immagine
qui sotto per vedere
una anteprima della
pagina di accesso)



L'accesso riservato agli iscritti ai corsi on line www.mc2.it

Acquista anche uno solo
dei nostri corsi
per avere immediatamente
accesso alla
'Videotutorial Download Area': facile, basta un clic:

http://www.mc2.it



Iscriviti alla newsletter: E' GRATIS! (?)

 Nome: (?)

 (?)

e-mail: (?)

 (?)

Newsletter:

formato preferito:

Microsoft Access (?)

Impariamo Excel e il VBA(?)

Internet "da zero"! (?)

Html (?)

Consiglio

(?) = Aiuto

Leggi qui la Informativa completa sulla privacy.