Узнайте, как добавить напоминания о днях рождения в базу данных Access. Будьте в курсе, если у вашего клиента или сотрудника приближается день рождения, чтобы вы могли отправить им свое теплое приветствие.
Отправка поздравлений с днем рождения может быть отличным способом установить и укрепить отношения с клиентом или сотрудником. Если вы работаете с базой данных Access, содержащей записи о клиентах и сотрудниках, было бы здорово время от времени получать уведомления о приближающемся дне рождения клиента или сотрудника. В этом руководстве вы узнаете, как создать функцию, которая будет уведомлять вас о чьем-то особом дне в тот момент, когда вы открываете базу данных.
Скачать сейчас
Если вы хотите сtart использовать функцию как можно скорее, то вы можете:
Загрузите пример базы данных с кодами VBA прямо сейчас
В противном случае, если вы хотите сделать своими руками, вы можете прочитать содержимое ниже.
Предпосылка
В этом руководстве предполагается, что в вашей базе данных есть таблица, содержащая эти 3 поля: имя, фамилия и день рождения.
Действия по добавлению напоминаний о днях рождения в базу данных Access
- Создайте новую таблицу и назовите ее День РожденияПразднования. Это послужит хранилищем для списка именинников. Добавьте 3 поля, как показано ниже. Нет необходимости в первичном ключе.
- Создайте форму для BirthdayCelebrants. Эта форма появится при открытии базы данных, если есть предстоящие дни рождения.
- В области навигации выберите таблицу BirthdayCelebrants.
- Перейдите в «Создать» > «Форма».
- Единая форма будет автоматически создана для вас.
Поскольку мы собираемся отобразить список именинников, я бы посоветовал вам изменить представление формы по умолчанию на таблицу данных или непрерывные формы. Таким образом, вы можете быстро просмотреть список.
- В режиме конструктора выберите форму.
- Откройте лист свойств (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. Это запустит код при открытии базы данных.
- Перейдите в «Создать» > «Макрос».
- Выберите Код выполнения из раскрывающегося списка.
- В качестве имени функции напишите Выполнить напоминания о дне рождения ().
- Сохраните макрос как АвтоExec и нажмите «ОК».
- Теперь проверьте напоминание о дне рождения.
Закройте базу данных и снова откройте ее. Если есть предстоящие дни рождения, должна появиться форма напоминания о дне рождения. Если нет, база данных будет работать как обычно.
Быстрое напоминание
Теперь краткое напоминание. Если однажды вы не сможете открыть свою базу данных, не паникуйте. Примите необходимые меры для его восстановления. Если вы все еще не можете, попробуйте стороннее программное обеспечение, которое исправить доступ. Есть еще надежда.
Об авторе:
Джейми Стэк — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая sql восстановление и программные продукты для восстановления Excel. Для получения дополнительной информации посетите www.datanumen.com




