შეიტყვეთ, როგორ შეგიძლიათ დაამატოთ დაბადების დღის შეხსენებები თქვენს Access მონაცემთა ბაზაში. იყავით ინფორმირებული, ახლოვდება თუ არა თქვენი კლიენტის ან თანამშრომლის დაბადების დღე, ასე რომ თქვენ შეგიძლიათ გაუგზავნოთ მათ თქვენი თბილი მისალოცი.
დაბადების დღის მისალოცი გაგზავნა შეიძლება იყოს კლიენტთან ან თანამშრომელთან ურთიერთობის დასაკავშირებლად და გასაძლიერებლად. თუ თქვენ ამუშავებთ Access მონაცემთა ბაზას, რომელიც შეიცავს მომხმარებელთა/თანამშრომლების ჩანაწერებს, კარგი იქნება დროდადრო შეგატყობინოთ, რომ მოვა კლიენტის ან თანამშრომლის დაბადების დღე. ამ გაკვეთილზე თქვენ შეისწავლით თუ როგორ შეგიძლიათ შექმნათ ფუნქცია, რომელიც შეგატყობინებთ ვინმეს განსაკუთრებული დღის შესახებ მონაცემთა ბაზის გახსნის მომენტში.
ჩამოტვირთეთ არის
თუ გსურთ, რომ ფუნქცია რაც შეიძლება მალე გამოიყენოთ, შეგიძლიათ:
ჩამოტვირთეთ ნიმუშის მონაცემთა ბაზა VBA კოდებით ახლა
წინააღმდეგ შემთხვევაში, თუ გსურთ წვრილმანი, შეგიძლიათ წაიკითხოთ შინაარსი ქვემოთ.
წინაპირობა
ეს სახელმძღვანელო ვარაუდობს, რომ თქვენს მონაცემთა ბაზაში გაქვთ ცხრილი, რომელიც შეიცავს ამ 3 ველს: სახელი, გვარი და დაბადების დღე.
წვდომის მონაცემთა ბაზაში დაბადების დღის შეხსენებების დამატების ნაბიჯები
- შექმენით ახალი ცხრილი და დაასახელეთ დაბადების დღის ზეიმები. ეს იქნება საცავი დაბადების დღეების დღესასწაულების სიებისთვის. დაამატეთ 3 ველი, როგორც ეს ნაჩვენებია ქვემოთ. არ არის საჭირო პირველადი გასაღები.
- შექმენით ფორმა დაბადების დღის აღსანიშნავად. ეს ფორმა გამოჩნდება მონაცემთა ბაზის გახსნისას, თუ იქნება მომავალი დაბადების დღეები.
- ნავიგაციის პანელში აირჩიეთ BirthdayCelebrants ცხრილი.
- გადადით შექმნა > ფორმა.
- ერთიანი ფორმა ავტომატურად შეიქმნება თქვენთვის.
იმის გამო, რომ ჩვენ ვაპირებთ გამოვაჩინოთ დაბადების დღის აღნიშვნის სია, მე გირჩევთ შეცვალოთ ფორმის ნაგულისხმევი ხედი მონაცემთა ცხრილზე ან უწყვეტ ფორმებზე. ამ გზით, თქვენ შეგიძლიათ გქონდეთ სიის სწრაფი მიმოხილვა.
- დიზაინის ხედვისას აირჩიეთ ფორმა.
- გახსენით თვისებების ფურცელი (ALT + F11)
- გადადით ფორმატი > ნაგულისხმევი ხედი.
- აირჩიეთ თქვენთვის სასურველი ხედი - მონაცემთა ცხრილი ან უწყვეტი ფორმები.
თუ არჩეული გაქვთ უწყვეტი ფორმები, შეცვალეთ დიზაინი თქვენი პრეფერენციების შესატყვისად. აი, როგორ გამოიყურება ჩემი:
მე შევცვალე დაბადების დღის ტექსტური ყუთის ფორმატი ისე, რომ მნიშვნელობები გამოჩნდეს Long Date ფორმატში. ასევე, მე გავაკეთე შემდეგი განახლებები ფორმის თვისებებზე:
- დამატებების დაშვება: არა
- წაშლის დაშვება: არა
- რედაქტირების დაშვება: არა
დასრულების შემდეგ დახურეთ ფორმა და შეინახეთ როგორც 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 და დააჭირეთ OK- ს.
- ახლა შეამოწმეთ თქვენი დაბადების დღის შეხსენება.
დახურეთ მონაცემთა ბაზა და ხელახლა გახსენით იგი. თუ მომავალი დაბადების დღეებია, დაბადების დღის შეხსენების ფორმა უნდა გამოჩნდეს. თუ არცერთი, მონაცემთა ბაზა იმუშავებს ჩვეულ რეჟიმში.
სწრაფი შეხსენება
ახლა სწრაფი შეხსენებისთვის. თუ ერთ მშვენიერ დღეს ვერ გახსნით თქვენს მონაცემთა ბაზას, ნუ ჩავარდებით პანიკაში. მიიღეთ აუცილებელი ზომები მის აღსადგენად. თუ მაინც ვერ შეძლებთ, სცადეთ მესამე მხარის პროგრამული უზრუნველყოფა შეასწორეთ წვდომა. ჯერ კიდევ არის იმედი.
ავტორი შესავალი:
ჯეიმ სტეკი არის მონაცემთა აღდგენის ექსპერტი DataNumen, Inc., რომელიც მსოფლიო ლიდერია მონაცემთა აღდგენის ტექნოლოგიებში, მათ შორის sql აღდგენა და Excel-ის აღდგენის პროგრამული პროდუქტები. დამატებითი ინფორმაციისთვის ეწვიეთ www.datanumen. ერთად




