Scopri come aggiungere promemoria per i compleanni al tuo database di Access. Tieniti informato se si avvicina il compleanno del tuo cliente o dipendente in modo da poter inviare loro il tuo caloroso saluto.
L'invio di auguri di compleanno può essere un ottimo modo per entrare in contatto e rafforzare la relazione con un cliente o un dipendente. Se gestisci un database di Access contenente record di clienti/dipendenti, può essere utile ricevere una notifica di tanto in tanto se si avvicina il compleanno di un cliente o di un dipendente. In questo tutorial imparerai come creare una funzione che ti avviserà del giorno speciale di qualcuno nel momento in cui apri il database.
Scarica Ora
Se desideri iniziare a utilizzare la funzionalità il prima possibile, puoi:
Scarica ora il database di esempio con i codici VBA
Altrimenti, se vuoi fare il fai-da-te, puoi leggere i contenuti di seguito.
Prerequisito
Questo tutorial presuppone che tu abbia una tabella nel tuo database che contiene questi 3 campi: nome, cognome e data di nascita.
Passaggi per aggiungere promemoria di compleanno nel database di Access
- Crea una nuova tabella e assegnagli un nome CompleannoCelebranti. Questo servirà come archivio per l'elenco dei festeggiati. Aggiungi 3 campi come mostrato di seguito. Non c'è bisogno di una chiave primaria.
- Crea un modulo per BirthdayCelebrants. Questo modulo apparirà all'apertura del database se ci sono compleanni imminenti.
- Nel riquadro di navigazione, seleziona la tabella BirthdayCelebrants.
- Vai a Crea > Modulo.
- Un modulo singolo verrà creato automaticamente per te.
Dal momento che mostreremo un elenco di festeggiati, ti suggerisco di modificare la visualizzazione predefinita del modulo in Foglio dati o Moduli continui. In questo modo, puoi avere una rapida panoramica dell'elenco.
- In visualizzazione struttura selezionare il modulo.
- Apri la finestra delle proprietà (ALT + F11)
- Vai a Formato > Visualizzazione predefinita.
- Seleziona la visualizzazione desiderata: Foglio dati o Moduli continui.
Se hai selezionato Moduli continui, modifica il design in base alle tue preferenze. Ecco come sono i miei:
Ho modificato il formato della casella di testo Compleanno in modo che i valori vengano visualizzati nel formato Data lunga. Inoltre, ho apportato i seguenti aggiornamenti alle proprietà del modulo:
- Consenti Aggiunte: No
- Consenti eliminazioni: No
- Consenti modifiche: no
Al termine, chiudi il modulo e salvalo con nome frm_BirthdayCelebrants.
- Aggiungi il codice per il promemoria del compleanno.
- Aggiungi un nuovo modulo.
- Questo aprirà l'editor VBA.
- Aggiungere il codice seguente e modificarlo in base alle proprie esigenze.
- Aggiungi un nuovo modulo.
Public Function RunBirthdayReminders()
Dim qry As String, fld_fName As String, fld_lName As String, fld_birthday As String, tbl As String
Dim db As DAO.Database, rst As DAO.Recordset
'TO DO: Update the ff. variables with the actual name of your table and fields
tbl = "Members" 'table containing your client/employee reocrds
fld_fName = "FirstName" 'first name field
fld_lName = "LastName" 'last name field
fld_birthday = "Birthday" 'birthday field
Set db = CurrentDb
'delete current record(s) from BirthdayCelebrants table
DoCmd.SetWarnings False
DoCmd.RunSQL ("DELETE FROM BirthdayCelebrants")
DoCmd.SetWarnings True
'insert new record(s) in BirthdayCelebrants table using a query that gets list of people celebrating their birthday today.
qry = "INSERT INTO BirthdayCelebrants " & _
"SELECT " & fld_fName & ", " & fld_lName & ", " & fld_birthday & " FROM " & tbl & " WHERE " & _
"Month(" & fld_birthday & ")=Month(Date()) AND Day(" & fld_birthday & ")=Day(Date())"
DoCmd.SetWarnings False
DoCmd.RunSQL (qry)
DoCmd.SetWarnings True
Set rst = db.OpenRecordset("SELECT * FROM BirthdayCelebrants")
If Not rst.EOF Then
DoCmd.OpenForm ("frm_BirthdayCelebrants")
End If
Set db = Nothing
Set rst = Nothing
End Function
Tieni presente che il codice precedente utilizza una query che ottiene un elenco di festeggiati per il giorno corrente. Se desideri ottenere un elenco di persone il cui compleanno si avvicina per il mese corrente, utilizza invece la seguente query.
'insert new record(s) in BirthdayCelebrants table using a query that gets list of people whose birthday is coming up for this month.
qry = "INSERT INTO BirthdayCelebrants " & _
"SELECT " & fld_fName & ", " & fld_lName & ", " & fld_birthday & " FROM " & tbl & " WHERE " & _
"Month(" & fld_birthday & ")=Month(Date()) AND Day(" & fld_birthday & ")>=Day(Date())" & _
" ORDER BY Day(" & fld_birthday & ") ASC"
- Infine, creeremo una macro AutoExec. Questo eseguirà il codice all'apertura del database.
- Vai a Crea > Macro.
- Seleziona EseguiCodice dall'elenco a discesa.
- Per il nome della funzione, scrivi Esegui Promemoria compleanni().
- Salva la macro con nome AutoExec e fare clic su OK.
- Ora prova il tuo promemoria di compleanno.
Chiudere il database e riaprirlo. Se ci sono compleanni imminenti, dovrebbe apparire il modulo di promemoria del compleanno. Se nessuno, il database verrà eseguito normalmente.
Promemoria rapido
Ora per un rapido promemoria. Se un giorno non riesci ad aprire il tuo database, niente panico. Prendere le misure necessarie per recuperarlo. Se ancora non ci riesci, prova un software di terze parti che lo farà correggere l'accesso. C'è ancora speranza.
Introduzione dell'autore:
Jayme Stack è un esperto di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui ripristino sql ed eccellere prodotti software di recupero. Per maggiori informazioni visita www.datanumen.com




