Як додати нагадування про день народження у базі даних доступу

Поділитися зараз:

Дізнайтеся, як можна додавати нагадування про день народження до бази даних Access. Будьте в курсі, якщо наближається день народження вашого клієнта або працівника, щоб ви могли надіслати їм своє тепле вітання.

Передача привітань з днем ​​народження може стати чудовим способом зв’язати та зміцнити стосунки з клієнтом або працівником. Якщо ви обробляєте базу даних Access, що містить записи клієнтів / співробітників, може бути чудово час від часу отримувати повідомлення про те, що наближається день народження клієнта або працівника. У цьому підручнику ви дізнаєтеся, як можна створити функцію, яка повідомлятиме вас про особливий день у той момент, коли ви відкриваєте базу даних.

Завантажити зараз

Якщо ви хочете почати користуватися цією функцією якомога швидше, ви можете:

Завантажте Зразок бази даних із кодами VBA зараз

В іншому випадку, якщо ви хочете зробити самостійно, ви можете прочитати вміст нижче.

Необхідна умова

Цей підручник передбачає, що у вашій базі даних є таблиця, яка містить ці 3 поля: ім’я, прізвище та день народження.

Кроки для додавання нагадувань про день народження в базі даних Access

  1. Створіть нову таблицю та назвіть її День народження. Це буде служити сховищем для списку святкуючих іменинників. Додайте 3 поля, як показано нижче. Не потрібно первинного ключа.Стіл на день народження
  2. Створіть форму для BirthdayCelebrants. Ця форма з’явиться під час відкриття бази даних, якщо є дні народження.Створіть форму для вибраних
  • На навігаційній панелі виберіть таблицю BirthdayCelebrants.
  • Перейдіть до Створити> Форма.
  • Для вас буде автоматично створено єдину форму.

Оскільки ми збираємося відобразити список святкувачів днів народження, я б запропонував вам змінити подання форми за замовчуванням на Datasheet або Continuous Form. Таким чином, ви можете швидко оглянути список.Змініть стандартний вигляд форми

  • Під час перегляду дизайну виберіть форму.
  • Відкрийте аркуш властивостей (ALT + F11)
  • Перейдіть до Формат> Перегляд за замовчуванням.
  • Виберіть потрібний вигляд - або таблицю даних, або безперервні форми.

Якщо ви вибрали Безперервні форми, відредагуйте дизайн відповідно до ваших уподобань. Ось як виглядають мої:Виберіть безперервні форми та відредагуйте дизайн

Я відредагував формат текстового поля "День народження", щоб значення відображались у форматі "Довга дата". Також я зробив такі оновлення щодо властивостей форми:

  • Дозволити доповнення: Ні
  • Дозволити видалення: Ні
  • Дозволити редагування: Ні

Завершивши, закрийте форму та збережіть її як frm_BirthdayCelebrants.

  1. Додайте код для нагадування про день народження.
    • Додайте новий модуль.Додайте новий модуль
    • Це відкриє редактор 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"
  1. Нарешті, ми збираємося створити макрос AutoExec. Це запустить код при відкритті бази даних.Створіть макрос AutoExec
    • Перейдіть до пункту Створити> Макрос.
    • Виберіть RunCode зі спадного списку.
    • Для назви функції напишіть RunBirthdayReminders ().
    • Збережіть макрос як AutoExec і натисніть кнопку ОК.
  1. Тепер протестуйте своє нагадування про день народження.

Закрийте базу даних і відкрийте її знову. Якщо є майбутні дні народження, повинна з’явитися форма нагадування про день народження. Якщо ні, база даних буде працювати як зазвичай.

Швидке нагадування

Тепер для швидкого нагадування. Якщо одного дня ви не можете відкрити свою базу даних, не панікуйте. Вжити необхідних заходів для його відновлення. Якщо ви все ще не можете, спробуйте стороннє програмне забезпечення, яке буде виправити Access. Надія ще є.

Вступ автора:

Джейме Стек - експерт із відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі відновлення SQL та програмні продукти Excel для відновлення. Для отримання додаткової інформації відвідайте WWW.datanumen.com

Поділитися зараз:

Коментарі закриті.