Download presentation
Presentation is loading. Please wait.
Published byRandolf Jenkins Modified over 8 years ago
1
11 Chapter 10 Customizing a Database with Macros and Visual Basic for Applications Exploring Microsoft Office Access 2007
2
2 Objectives Understand the purpose of macros Create embedded macros using Wizards Create macros using the Macro Builder Assign macros to events Use SQL conditions to control macro actions
3
3 Objectives Understand Visual Basic for Applications (VBA) Use the Visual Basic Editor Create procedures Declare and use variables Manage data using SQL
4
4 Customization in Access Customization needed when additional functionality required Access provides two methods of Customization Visual Basic for Applications –User creates code using VBA Macros –Automates tasks
5
5 Macros Two types of Macros in Access –Embedded – belongs to a single object or control –Standalone – used with more than one control Control – object in Access (textbox, list box) Macro Group Group of macros stored in a single macro object
6
Creating an Embedded Macro Click Design tab Click Button –Controls Group Command Wizard begins Command Button Wizard Button
7
Creating an Embedded Macro Choose the appropriate category Choose action that you want to perform Click Next Select the object you wish to use Click Next Choose a categoryChoose an actionChoose object that the action will be performed upon
8
Creating an Embedded Macro Specify action when form is opened –Screen varies by object and action Specify text or graphic Click Next Specify Text or graphic for the buttonSpecify how the button should work open an object
9
9 Creating an Embedded Macro Provide a name for the button Click Finish Completed button Finish
10
10 Creating Standalone Macros using the Macro Builder Click the Create tab Click Macro –Other group –Macro Builder launches Macro Macro Builder
11
11 Creating Standalone Macros using the Macro builder Select Action Provide Arguments when necessary –Value that provides information for action Run or Close and Save macro 1. Provide Argument Select Action 2. Argument appears here
12
12 Assigning Events Event –Action triggered by user or system Assign an Event –Right-click, select properties –Choose property-Event tab, Control list Property Sheet Events Choose object that the event is assigned to
13
13 Running a Macro Design view –Click the Run button Form, Report or Table view –Click button or perform assigned event Navigation Pane –Double-click Macro Button in Form View Navigation Pane
14
14 Structured Query Language SQL –Defines and process database queries –Industry standard query language Microsoft Access SQL –Microsoft version of SQL SELECT fname FROM customer; SQL statement Show (SELECT) me the records in the first name (fname) field that are in (FROM) the customer table
15
15 Database Analysis Tools Clauses –Added to statements to restrict/specify records WHERE clause –Specifies which records to return ORDER BY clause –Specifies sort order SELECT fname FROM customer WHERE lname=“Smith” ORDER BY fname Returns records in the fname field only where the lname field is equal to Smith. Records are sorted in ascending order by first name
16
16 Visual Basic for Applications Programming language –Allows you to create/customize applications –It is a host application Resides in Office application Visual Basic Editor –Workspace for writing/editing VBA procedures
17
17 Launching the Visual Basic Editor Three ways to launch editor –Macro group, Database Tools tab –Event Property of an object/control –Press Alt+F11 VBA Editor
18
18 VBA Terminology Comment – explains the code’s purpose Keyword – recognized as part of a language Syntax – rules for entering statements Standard Module – stores procedures used by events Class module – contains procedures for specific objects Option Explicit – helps eliminate common errors
19
19 VBA Terminology (cont.) Event – action that triggers program instructions Sub procedure – performs an action Property procedure – creates or manipulates custom properties Function procedure – performs action, returns value Public Procedure – available to all objects Private Procedure – available to a specific object
20
20 Creating Procedures Select Insert on menu bar Select Module New module opens New Module Click Insert, Module
21
21 Creating Sub Procedures Enter keyword Sub Enter the name of the procedure Enter a pair of parenthesis Enter End Sub Sub Procedure
22
22 Decision Structures Performs logical test to compare statements Uses relations operators such as: –=, equal to, not equal to – less than, greater than –>= Greater than or equal to –<= Less than or equal to If Cost <=75 then purchase = 2
23
23 Variables Named storage location in memory A variable’s scope limits accessibility Three different scopes –Local – available to a specific procedure –Module-level – available to any procedure within module –Global – available to any procedure
24
24 Naming and Dimensioning Dim (dimension) variables before using –Use appropriate data type Name variables logically Use a meaningful name –Variable12 not meaningful –intQuantity meaningful Dim strName as string Public intCost as int Data typeVariable name Local or module variable Global variable
25
25 Assign Values to Variables Storage location named fname –John = value –Written fname = “John” Storage location named lname –Doe = value –Written lname= “Doe” JohnDoeValdosta fnamelnamecity Memory
26
26 Call a Procedure Call keyword or procedure name –Can be used to activate another procedure Call to CloseForm Procedure
27
27 Passing and “Catching” Arguments Argument passed to CloseForm procedure Passed to and “caught” here. Notice the variable names you are passing from and to do not have to match
29
Private Sub cmdHistoryForm_Click() 'Display the form DoCmd.OpenForm("Employee"),,,, acFormEdit End Sub Private Sub cmdEmployeeForm_Click() 'Display the form DoCmd.OpenForm("History"),,,, acReadOnly End Sub Private Sub cmdExit_Click() 'Exit the application intResponse = MsgBox("Do you want to exit the Compensation" & _ "application?", vbYesNo + vbCritical, "Exit Application?") If intResponse = vbYes Then Application.Quit acQuitPrompt End If End Sub
30
Private Sub cmdSummaryReport_Click() 'This procedure defines an SQL query as the record source 'for the "Retirement Summary" report; the SQL statement 'returns all records 'Assign the report name to the strObjectName variable strObjectName = "Retirement Summary" 'Declare a variable to store the SQL statement, define the 'SQL string strSQL = "SELECT Employee.LastName, Employee.FirstName, " & _ "Office.Region, Contribution.PayDate," & _ "Contribution.[401KEmployee], " & _ "Contribution.[401KMatch], Contribution.[401KTotal], " & _ "FROM (Office INNER JOIN Employee ON Office.[OfficeNumber] = " & _ "Employee.[OfficeLocation])" & _ "INNER JOIN Contribution ON Employee.[SSN] = Contribution.[SSN];"
31
'Open the Address List Report DoCmd.OpenReport strObjectName, acViewReport 'Assign the SQL query as the record source for the report Reports(strObjectName).RecordSource = strSQL 'clean up the public strSQL variable strSQL = "" End Sub
32
Private Sub cmdContribByRegion_Click() 'Assign the report name to the strObjectName variable strObjectName = "Retirement Summary" strSQL = "SELECT Employee.LastName, Employee.FirstName, " & _ "Office.Region, Contribution.PayDate," & _ "Contribution.[401KEmployee], " & _ "Contribution.[401KMatch], Contribution.[401KTotal], " & _ "FROM (Office INNER JOIN Employee ON Office.[OfficeNumber] = " & _ "Employee.[OfficeLocation])" & _ "INNER JOIN Contribution ON Employee.[SSN] = Contribution.[SSN]" & _ "WHERE (((Office.Region) = [Enter Region Name]));"
33
'Open the Address List Report DoCmd.OpenReport strObjectName, acViewReport 'Assign the SQL query as the record source for the report Reports(strObjectName).RecordSource = strSQL 'clean up the public strSQL variable strSQL = "" End Sub
34
Sub cmdClose_Click() strObjectName = "Employee" strShortName = "Employee Records" CloseForm strObjectName, strShortName End Sub
35
Sub cmdClose_Click() strObjectName = "Employee" strShortName = "Employee Records" CloseForm strObjectName, strShortName End Sub
36
Private Sub cmdClose_Click() strObjectName = "History" strShortName = "Contribution History" CloseForm strObjectName, strShortName End Sub
37
Private Sub cmdClose_Click() strObjectName = "History" strShortName = "Contribution History" CloseForm strObjectName, strShortName End Sub
38
Option Explicit 'Declare global variables Public strObjectName As String Public strShortName As String Public intResponse As Integer Public strSQL As String 'General procedure to close a form Sub CloseForm(ObjectName, ShortName) intResponse = MsgBox("Do you want to close the" &ShortName & _ "form?", vbYesNo + vbCritical, "Close Form?") If intResponse = vbYes Then DoCmd.Close acForm, ObjectName End If End Sub 'General Procedure to close a report Sub CloseReport(ObjectName, ShortName) intResponse = MsgBox("Do you want to close the" &ShortName & _ "report?", vbYesNo + vbCritical, "Close Report?") If intResponse = vbYes Then DoCmd.Close acReport, ObjectName End If End Sub
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.