Дізнайтеся, як можна додавати нагадування про день народження до бази даних Access. Будьте в курсі, якщо наближається день народження вашого клієнта або працівника, щоб ви могли надіслати їм своє тепле вітання.
Передача привітань з днем народження може стати чудовим способом зв’язати та зміцнити стосунки з клієнтом або працівником. Якщо ви обробляєте базу даних Access, що містить записи клієнтів / співробітників, може бути чудово час від часу отримувати повідомлення про те, що наближається день народження клієнта або працівника. У цьому підручнику ви дізнаєтеся, як можна створити функцію, яка повідомлятиме вас про особливий день у той момент, коли ви відкриваєте базу даних.
Завантажити зараз
Якщо ви хочете почати користуватися цією функцією якомога швидше, ви можете:
Завантажте Зразок бази даних із кодами VBA зараз
В іншому випадку, якщо ви хочете зробити самостійно, ви можете прочитати вміст нижче.
Необхідна умова
Цей підручник передбачає, що у вашій базі даних є таблиця, яка містить ці 3 поля: ім’я, прізвище та день народження.
Кроки для додавання нагадувань про день народження в базі даних Access
- Створіть нову таблицю та назвіть її День народження. Це буде служити сховищем для списку святкуючих іменинників. Додайте 3 поля, як показано нижче. Не потрібно первинного ключа.
- Створіть форму для BirthdayCelebrants. Ця форма з’явиться під час відкриття бази даних, якщо є дні народження.
- На навігаційній панелі виберіть таблицю BirthdayCelebrants.
- Перейдіть до Створити> Форма.
- Для вас буде автоматично створено єдину форму.
Оскільки ми збираємося відобразити список святкувачів днів народження, я б запропонував вам змінити подання форми за замовчуванням на Datasheet або Continuous Form. Таким чином, ви можете швидко оглянути список.
- Під час перегляду дизайну виберіть форму.
- Відкрийте аркуш властивостей (ALT + F11)
- Перейдіть до Формат> Перегляд за замовчуванням.
- Виберіть потрібний вигляд - або таблицю даних, або безперервні форми.
Якщо ви вибрали Безперервні форми, відредагуйте дизайн відповідно до ваших уподобань. Ось як виглядають мої:
Я відредагував формат текстового поля "День народження", щоб значення відображались у форматі "Довга дата". Також я зробив такі оновлення щодо властивостей форми:
- Дозволити доповнення: Ні
- Дозволити видалення: Ні
- Дозволити редагування: Ні
Завершивши, закрийте форму та збережіть її як frm_BirthdayCelebrants.
- Додайте код для нагадування про день народження.
- Додайте новий модуль.
- Це відкриє редактор VBA.
- Додайте наступний код та змініть його відповідно до своїх потреб.
- Додайте новий модуль.
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
Зверніть увагу, що у наведеному вище коді використовується запит, який містить список святкувачів дня народження на поточний день. Якщо ви хочете отримати список людей, чий день народження наближається до поточного місяця, використовуйте натомість такий запит.
'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"
- Нарешті, ми збираємося створити макрос AutoExec. Це запустить код при відкритті бази даних.
- Перейдіть до пункту Створити> Макрос.
- Виберіть RunCode зі спадного списку.
- Для назви функції напишіть RunBirthdayReminders ().
- Збережіть макрос як AutoExec і натисніть кнопку ОК.
- Тепер протестуйте своє нагадування про день народження.
Закрийте базу даних і відкрийте її знову. Якщо є майбутні дні народження, повинна з’явитися форма нагадування про день народження. Якщо ні, база даних буде працювати як зазвичай.
Швидке нагадування
Тепер для швидкого нагадування. Якщо одного дня ви не можете відкрити свою базу даних, не панікуйте. Вжити необхідних заходів для його відновлення. Якщо ви все ще не можете, спробуйте стороннє програмне забезпечення, яке буде виправити Access. Надія ще є.
Вступ автора:
Джейме Стек - експерт із відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі відновлення SQL та програмні продукти Excel для відновлення. Для отримання додаткової інформації відвідайте WWW.datanumen.com




