Dowiedz się, jak dodać przypomnienia o urodzinach do bazy danych programu Access. Otrzymuj informacje, jeśli zbliżają się urodziny Twojego klienta lub pracownika, aby móc wysłać im ciepłe powitanie.
Wysyłanie życzeń urodzinowych może być świetnym sposobem na nawiązanie i wzmocnienie relacji z klientem lub pracownikiem. Jeśli masz do czynienia z bazą danych programu Access zawierającą rekordy klientów/pracowników, warto od czasu do czasu otrzymywać powiadomienia o zbliżających się urodzinach klienta lub pracownika. W tym samouczku dowiesz się, jak stworzyć funkcję, która w momencie otwarcia bazy danych powiadomi Cię o czyimś szczególnym dniu.
Pobierz teraz
Jeśli chcesz zacząć korzystać z tej funkcji jak najszybciej, możesz:
Pobierz teraz przykładową bazę danych z kodami VBA
W przeciwnym razie, jeśli chcesz wykonać majsterkowanie, możesz przeczytać poniższą zawartość.
Przesłanka
W tym samouczku założono, że w bazie danych znajduje się tabela zawierająca te 3 pola: imię, nazwisko i data urodzenia.
Kroki, aby dodać przypomnienia o urodzinach w bazie danych programu Access
- Utwórz nową tabelę i nazwij ją UrodzinyCelebranci. Będzie to służyć jako repozytorium listy obchodów urodzin. Dodaj 3 pola, jak pokazano poniżej. Nie ma potrzeby posiadania klucza podstawowego.
- Utwórz formularz dla BirthdayCelebrants. Ten formularz pojawi się po otwarciu bazy danych, jeśli są zbliżające się urodziny.
- W okienku nawigacji wybierz tabelę BirthdayCelebrants.
- Przejdź do Utwórz> Formularz.
- Pojedynczy formularz zostanie automatycznie utworzony dla Ciebie.
Ponieważ zamierzamy wyświetlić listę obchodów urodzin, sugerowałbym zmianę widoku domyślnego formularza na arkusz danych lub formularze ciągłe. W ten sposób możesz szybko przejrzeć listę.
- W widoku projektu wybierz formularz.
- Otwórz arkusz właściwości (ALT + F11)
- Przejdź do Format> Widok domyślny.
- Wybierz żądany widok - arkusz danych lub formularze ciągłe.
Jeśli wybrałeś Formularze ciągłe, edytuj projekt zgodnie z własnymi preferencjami. Oto jak mój wygląda:
Zmieniłem format pola tekstowego Urodziny, aby wartości były wyświetlane w formacie daty długiej. Wprowadziłem również następujące aktualizacje właściwości formularza:
- Zezwalaj na dodatki: Nie
- Zezwalaj na usuwanie: Nie
- Zezwól na edycję: Nie
Po zakończeniu zamknij formularz i zapisz go jako frm_BirthdayCelebranty.
- Dodaj kod przypomnienia o urodzinach.
- Dodaj nowy moduł.
- Otworzy się edytor VBA.
- Dodaj poniższy kod i zmodyfikuj go, aby dopasować go do swoich potrzeb.
- Dodaj nowy moduł.
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
Zwróć uwagę, że powyższy kod wykorzystuje zapytanie, które pobiera listę obchodów urodzin na bieżący dzień. Jeśli chcesz uzyskać listę osób, których urodziny zbliżają się w bieżącym miesiącu, użyj zamiast tego następującego zapytania.
'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"
- Na koniec utworzymy makro AutoExec. Spowoduje to uruchomienie kodu podczas otwierania bazy danych.
- Przejdź do Utwórz> Makro.
- Wybierz UruchomKod z listy rozwijanej.
- W polu Nazwa funkcji wpisz RunBirthdayReminders ().
- Zapisz makro jako Autowykon i kliknij OK.
- Teraz przetestuj przypomnienie o urodzinach.
Zamknij bazę danych i otwórz ją ponownie. Jeśli są zbliżające się urodziny, powinien pojawić się formularz przypomnienia o urodzinach. Jeśli nie, baza danych będzie działać normalnie.
Szybkie przypomnienie
Teraz krótkie przypomnienie. Jeśli któregoś dnia nie będziesz mógł otworzyć bazy danych, nie panikuj. Podejmij niezbędne kroki, aby go odzyskać. Jeśli nadal nie możesz, wypróbuj oprogramowanie innej firmy, które to zrobi naprawić Access. Wciąż jest nadzieja.
Wprowadzenie autora:
Jayme Stack jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym odzyskiwanie sql i doskonałe oprogramowanie do odzyskiwania. po więcej informacji odwiedź www.datanumen.com




