1 / 38

Exploring Microsoft Office Access 2010

Exploring Microsoft Office Access 2010. Chapter 10 Customizing a Database with Macros and Visual Basic for Applications. 1. Objectives. Understand the purpose of macros Create embedded macros using Wizards Create macros using the Macro Builder Assign macros to events

gclayton
Download Presentation

Exploring Microsoft Office Access 2010

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Exploring Microsoft Office Access 2010 Chapter 10 Customizing a Database with Macros and Visual Basic for Applications 1

  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. Objectives Understand Visual Basic for Applications (VBA) Use the Visual Basic Editor Create procedures Declare and use variables Manage data using SQL

  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. 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 Button Command Button Wizard

  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 category Choose an action Choose 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 how the button should work open an object Specify Text or graphic for the button

  9. Creating an Embedded Macro Provide a name for the button Click Finish Completed button Finish

  10. Creating Standalone Macros using the Macro Builder Click the Create tab Click Macro Other group Macro Builder launches Macro Builder Macro

  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 Select Action 2. Argument appears here 1. Provide Argument

  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. 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. Structured Query Language SQL Defines and process database queries Industry standard query language Microsoft Access SQL Microsoft version of SQL SQL statement SELECT fname FROM customer; Show (SELECT) me the records in the first name (fname) field that are in (FROM) the customer table

  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. 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. 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. 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. 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. Creating Procedures Select Insert on menu bar Select Module New module opens Click Insert, Module New Module

  21. Creating Sub Procedures Enter keyword Sub Enter the name of the procedure Enter a pair of parenthesis Enter End Sub Sub Procedure

  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. 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. Naming and Dimensioning Variable name Data type Dim strName as string Local or module variable Public intCost as int Global variable • Dim (dimension) variables before using • Use appropriate data type • Name variables logically • Use a meaningful name • Variable12 not meaningful • intQuantity meaningful

  25. Assign Values to Variables fname lname city Memory • Storage location named fname • John = value • Written fname = “John” • Storage location named lname • Doe = value • Written lname= “Doe”

  26. Call a Procedure Call to CloseForm Procedure • Call keyword or procedure name • Can be used to activate another procedure

  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

  28. 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

  29. 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];"

  30. '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

  31. 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]));"

  32. '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

  33. Sub cmdClose_Click() strObjectName = "Employee" strShortName = "Employee Records" CloseForm strObjectName, strShortName End Sub

  34. Sub cmdClose_Click() strObjectName = "Employee" strShortName = "Employee Records" CloseForm strObjectName, strShortName End Sub

  35. Private Sub cmdClose_Click() strObjectName = "History" strShortName = "Contribution History" CloseForm strObjectName, strShortName End Sub

  36. Private Sub cmdClose_Click() strObjectName = "History" strShortName = "Contribution History" CloseForm strObjectName, strShortName End Sub

  37. 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

More Related