1 chapter 8 object-based programming in vba. 8 chapter objectives declare and use object variables...

52
1 Chapter 8 Object-Based Programming in VBA

Post on 21-Dec-2015

221 views

Category:

Documents


2 download

TRANSCRIPT

1Chapter 8Chapter 8

Object-Based Programming in

VBA

Object-Based Programming in

VBA

8Chapter ObjectivesChapter Objectives

• Declare and use object variables• Create procedures that use built-in form

methods• Find and manipulate data with recordset

objects• Execute parameter queries in VBA• Communicate with other applications with

Automation objects

8Chapter ObjectivesChapter Objectives

• Find methods through the Object Browser

• Create class modules

• Open multiple form instances with user-defined objects

• Describe the features of a well-designed, object-based application

8 The World According to Methods

The World According to Methods

• Access uses objects and properties because people understand and use them in their daily lives and thus can easily apply the concepts to programming

• Method Procedure or action that belongs to an object

8Overview of Access MethodsOverview of Access Methods

• Access methods perform actions

Figure 8-1 NewDegreeType procedure

8Overview of Access MethodsOverview of Access Methods

Figure 8-1 NewDegreeType procedure (continued)

8Overview of Access MethodsOverview of Access Methods

• Facts about methods: RunCommand method

Similar to RunCommand macro actionDoCmd.RunCommand acCmdUndo erases the

user’s most recent entry from the form

Open methodWhen applied to a recordset object, the recordset

can access data in the table or query that is specified in the Source argument

8Overview of Access MethodsOverview of Access Methods

• Facts about methods (continued): AddNew method

Attached to a recordset objectCauses a recordset to create space for a new record

Update methodCauses the recordset to write the new record to the

database Close method

Removes the reference to the recordset

8Object VariablesObject Variables

• To invoke a method, the associated object must be referenced

• Dot and bang notations Allow the identification of specific forms,

reports, controls, tables, or fields Can be used when invoking a method

8Object VariablesObject Variables

• Dot and bang notation disadvantages: Can be long Not very efficient when used repeatedly

• Object variables Variables used in VBA procedures that contain a

pointer to the item of interest Efficient reference to Access application objects Must be used to reference DAO and ADO objects

8 Declaring and Setting Object Variables

Declaring and Setting Object Variables

• Declaration statements declare variables as String, Long, Integer, and so on

• VBA statements are similar to those found in many other procedural languages

• In VBA, data types used in declaration statements can also include objects

8 Another Technique for Setting Object VariablesAnother Technique for

Setting Object Variables

• Declare a control object variable and then set the object variable to the control that currently has the focus Control is identified by the ActiveControl

property of the Screen object Technique is used when a procedure can work

with whatever control has the focus

8 Built-in Methods Related to Microsoft Access Objects

Built-in Methods Related to Microsoft Access Objects

• Microsoft Access objects, including forms, reports, and applications, support many built-in methods

• Some objects, including forms, reports, and independent class modules, support the creation of custom methods

8DoCmd MethodsDoCmd Methods

• DoCmd objects Never manipulated by its methods, but those

methods frequently manipulate another object

• DoCmd methods Exist for almost every action that can be

selected from a macro’s action column Name matches a macro action Arguments usually correspond to the macro’s

action arguments

8DoCmd MethodsDoCmd Methods

Table 8-1 Commonly used DoCmd methods

8DoCmd MethodsDoCmd Methods

Table 8-1 Commonly used DoCmd methods (continued)

8DoCmd MethodsDoCmd Methods

Table 8-1 Commonly used DoCmd methods (continued)

8 The RunCommand Method and Its Intrinsic Constants

The RunCommand Method and Its Intrinsic Constants

• Action performed by the RunCommand method depends on the value of its command argument Intrinsic constants is used to specify that value

Exist for almost all of the controls listed in the Access built-in menu bars

8 The RunCommand Method and Its Intrinsic Constants

The RunCommand Method and Its Intrinsic Constants

Figure 8-2 Deleting a record from frmStudentQDrops

8Form and Control MethodsForm and Control Methods

• Data shown on a form might not be current because: The recordset generated for the form may not

reflect recent changes to the databaseRefreshing a recordset refers to the process of

updating the fields of all records currently in the recordset

Requerying a form completely regenerates the recordset

8Form and Control MethodsForm and Control Methods

• Data on a form may not be current because (continued): A calculated control may not recalculate its

expression after the value of a control used in expression changes Calculated control should be recalculated

The form may know the correct values to display, but because Access is executing other procedures, it does not have time to display correct values Form needs repainting

8Form and Control MethodsForm and Control Methods

Figure 8-3 frmCurrentStudents and txtQDrops

8 Methods that Update Displayed Data

Methods that Update Displayed Data

• Access automatically refreshes, recalculates, and repaints forms at Access-defined intervals Refresh interval

Specified in the database’s Option window

8 Methods that Update Displayed Data

Methods that Update Displayed Data

• Refresh method To refresh the recordset

• Recalc method To cause a recalculation of the form’s calculated

controls

• Repaint method To force the system to repaint the screen

• Requery method To force Access to regenerate a recordset

8 Methods that Update Displayed Data

Methods that Update Displayed Data

Figure 8-4 Refreshing and requerying a form

8 Methods that Update Displayed Data

Methods that Update Displayed Data

Table 8-2 Form and control methods

8 Methods that Update Displayed Data

Methods that Update Displayed Data

Table 8-2 Form and control methods (continued)

8 Report, Module, and Application MethodsReport, Module, and Application Methods

• Application object Frequently used in Access applications

• Methods of the Application object: Echo Method

Used in conjunction with DoCmd’s HourGlass method

Turns screen updating off while several changes occur to the form

8 Report, Module, and Application MethodsReport, Module, and Application Methods

Table 8-3 Commonly used Application object methods

8ADO and DAO MethodsADO and DAO Methods

• Methods related to ActiveX Data Objects (ADO) and Data Access Objects (DAO) perform many operations including: Connecting to the database Executing queries Updating data not currently displayed in form

• ADO is replacing DAO as the standard method for manipulating data in Microsoft products

8 Methods of the Connection Object

Methods of the Connection Object

• Almost all procedures that use ADO objects require a Connection object Identifies and opens the database that contains

the tables and queries that are used within the procedure

Establishes a connection to a database that will be manipulated in VBA code

8 Methods of the Connection Object

Methods of the Connection Object

• Methods of a Connection Object: Close method

Shuts down the pathway to the database

Execute methodCan be used to execute queries

8 Executing Queries in VBA Through the Command Object

Executing Queries in VBA Through the Command Object

• The Execute method associated with the Command object in VBA causes a query to run

Figure 8-6 qryDeleteDeniedProspects

8Query ParametersQuery Parameters

• Frequently, action queries triggered in VBA code use VBA parameters

• Advantage of parameters is that the query will retrieve or update different data depending on the parameters’ values

• To execute a parameter query in VBA, the values of the parameters must be supplied

8Opening RecordsetsOpening Recordsets

• Programmers can use recordsets to locate and update data Must declare and set a recordset object variable Must open a pathway to the table or query that

contains the data through the Open method

• Recordset objects can be created from other recordset objects through the Clone method

8 Finding Records in a Recordset

Finding Records in a Recordset

• Bookmark property of a recordset A string expression that uniquely identifies the current

record

• AbsolutePosition property A long integer that contains the ordinal position of the

current record

• MoveFirst, MoveLast, MovePrevious, and MoveNext methods Used for simple movements to new records

8 Finding Records in a Recordset

Finding Records in a Recordset

• Move method Used in conjunction with a long integer to

move the specified number of records forward

• Seek method Used to search a recordset through the primary

key or indexes

• Filter propertySimilar to a form’s filter property

8 Editing, Deleting, and Updating Data in a Recordset

Editing, Deleting, and Updating Data in a Recordset

• Programmers frequently use recordsets to edit, delete, and update records

• Recordset methods specify how the data are to be updated

• Recordsets must be opened with a LockType that permit updating of the database

8Using DAO RecordsetsUsing DAO Recordsets

• Methods of DAO recordset FindFirst, FindNext, FindPrevious, and

FindLastSimilar to ADO’s Find method

AddNew, Update, and DeleteAlmost identical to their ADO counterparts

EditMust be executed before values in an existing record

are changed

8Using DAO RecordsetsUsing DAO Recordsets

• RecordsetClone property of a form Returns a pointer to the recordset

• NoMatch property Used to indicate whether the previous Find

method failed to find a match

8 ADO and DAO Methods – Some Final Thoughts

ADO and DAO Methods – Some Final Thoughts

• CompactDatabase method Associated with the JetEngine object Makes the database smaller

• Append method Places newly created objects in a collection

• Delete method of a collection object Removes an object from the collection

8The Object BrowserThe Object Browser

• The Object Browser is available in the Visual Basic Editor (VBE)

Figure 8-8 Object Browser for VBA Collection Add method

8 Automation Object Variables and Methods

Automation Object Variables and Methods

• GetObject function Returns a pointer to objects in another Windows

application called the source application

• Automation object variable Any variable that references an object contained in

another application

• CreateObject function Used to create new applications in Access

8 Object-Based Approach to Application Development

Object-Based Approach to Application Development

• The object-based philosophy of Access provides some guidance as to how an application should be organized

• Many objects make up an Access application Most possess the ability to test or manipulate

their own features

8 Object-Based Approach to Application Development

Object-Based Approach to Application Development

• Other objects such as collections and forms possess abilities that perform certain operations on themselves Procedures outside the object need to know

only which methods are available and what the methods do

• A benefit of locating methods with objects that they manipulate is that many objects can use the same method

8 Object-Based Approach to Application Development

Object-Based Approach to Application Development

• “Rules of thumb” for designing Access applications: Organize procedures based on the object being

manipulated Try to build objects that can be reused Build Objects that are not highly coupled with

other objects

8 Opening Multiple Instancesof a Form

Opening Multiple Instancesof a Form

• User-defined object Class object that can be used to create other

objects

• Class object A model of an object

• Instances of the class object Objects that are based on a class

8 Creating and Using Independent Class Modules

Creating and Using Independent Class Modules

• Independent class modules Contain sub procedures and functions Can also contain Let and Get property

procedures Treated as an object

• Class modules can also invoke events• Because a class module is an object,

instances of the object can be created

8Chapter SummaryChapter Summary

• In VBA objects and properties are manipulated and created by methods Access supplies built-in methods You can create your own methods

• Objects can be identified through the dot and bang notations Object variables shortens notation

• Object variables can be declared as any recognized ADO, DAO, or Microsoft Access object type

8Chapter SummaryChapter Summary

• Form objects are associated with several built-in methods Requery tells form to regenerate its recordset Recalc, Refresh, and Repaint ensure that

Access is displaying the correct data on a form

• DoCmd object offers many methods for manipulating data on a form

8Chapter SummaryChapter Summary

• Recordsets can be created with several methods and properties Recordset methods locate or change data in a table

• Filling parameters and executing an action query in VBA code updates data

• Automation object variables allow VBA in Access to use and manipulate objects in other languages such as Word and Excel

8Chapter SummaryChapter Summary

• Access generates user-defined objects whenever forms and reports are created

• The combination of the New keyword with a user-defined object can be used to open multiple form instances

• Assigning an object to a persistent collection prolongs the object’s life