L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

19
L546 Session 7, IU-SLIS L546 Session 7, IU-SLIS 1 DB Implementation: DB Implementation: MS Access Queries & Reports MS Access Queries & Reports

Transcript of L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

Page 1: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 11

DB Implementation:DB Implementation:MS Access Queries & ReportsMS Access Queries & Reports

Page 2: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 22

OutlineOutline Access Queries

► Query Creation► Sorting & Filtering► Query Types► Dynamic Query

Access Reports► Report Sections► Grouping & Filtering

MS Access File for Lecture

Page 3: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 33

MS Access QueriesMS Access Queries Database Queries

► Core DBA skill► From SQL to Query by Example (QBE)

What does it do?► Find target information

• Retrieve, Filter, Sort, Aggregate/Summarize► Manipulate data

• Perform calculations• Add, Change, Delete, Combine data in tables• Assemble/Supply data for forms and reports

How does it work?► Access translates QBE to SQL ► SQL performs data manipulations based on Relational Algebra► Access queries create a dynaset (“live” view of table)

• changes made in data by query is reflected in underlying tables

Page 4: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 44

Access Queries: Access Queries: ViewsViews Datasheet view

► For displaying the result of the query► Useful for reviewing/validating the query

Design View► For creating/modifying a query using drag & drop GUI (i.e., QBE)► Consists of Diagram Pane & Grid Pane

• Add tables/queries to the Diagram Pane• Add fields to the Grid Pane (Field row)

► Can sort/filter/compute by fields• Sort row: set to Ascending/Descending• Criteria row: use Expression to apply data filter• Total row: compute (sum, min, max, count, etc.) of each field

► Automatically generates SQL statements

SQL View► For creating/modifying a query by manually writing SQL statements► Only way to create SQL-specific queries

• Union/Data-definition/Pass-through query

Page 5: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 55

Access Queries: Access Queries: Basic TypesBasic Types Simple Query

► Uses one table/query► To generate a subset (row/column) of a table

Multi-table Query► Joins multiple tables/queries► To merge small chunks of data in normalized tables

• Linked tables are automatically linked in in the Query Design Grid• Creating a link in the Query Design Grid does not permanently link tables

Select Query► Selects records that meet given criteria► Does not change the data

Parameter Query► Prompts for query criteria values (parameters) to run a dynamic query

Page 6: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 66

Access Queries: Access Queries: Sort & FilterSort & Filter Datasheet View

► Sorting• Click column and right-click

► Filtering• Filter Tool (Home tab)

Filter by Selection Filter by Form Advanced Filter/Sort

Design View► Sort using the Sort Row

• Sort priority is from left to right for multiple sort► Filter using the Criteria Row

• Criteria in multiple rows make OR query• Criteria in single row make AND query• Criteria in a single cell

AND/OR Wildcards (*) in Like and Between

– e.g. Like “A*”, Like “[A-C]*”, Like “*av*”, Like “ave?”, Not Like “A*”– e.g. Between 1950 and 1960, >1960

Page 7: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 77

Access Queries: Access Queries: Query CriteriaQuery Criteria

Query Criteria Expressions

Expression Returns

Between #1/1/99# and #12/31/99#

Dates from 1/1/99 to 12/31/99

In (“John”,”Mary”,”James”) Records with John, Mary, or James

Is Null Records with no entry

Like “Acc?ss” ‘Acc’ followed by any character, followed by ‘ss’

Like “*s” Ends in ‘s’

Like “v*” Starts with ‘v’

<1000 Less than 1000

1000 Equal to 1000

Like “[A-C]??” Starts with A through C and has two more characters

???? Any four characters

Len([Surname])= Val(4) Any Surname of 4 characters

Right([Surname],2)= “ss” Any Surname ending in “ss”

Left([Surname],2)= “ac” Any Surname starting with “ac”

Page 8: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 88

Access Queries: Access Queries: ExpressionsExpressions Using expressions to create a calculated column

► Enter expressions in blank column of query design view• NAME: [Field1] operator [Field2]

► Format the display in Format property of the field

Examples► Simple math

• DiscountPrice: [Discount] * [StandardPrice]► String Concatenation

• Name: [FirstName] & “ ” & [Lastname]► Date & Time math

• DateDiff(Interval, BeginDate, EndDate) HireAge: DateDiff(“yyyy”,[BirthDate],[HireDate])

• DateAdd(Interval, Number, Date) RetireDate: DateAdd(“yyyy”,25,[HireDate])

► Customized Sorting• Switch(expr1, value1, expr2, value2, etc.)

Switch([City]=“Seatle”, 1, [City]=“Redmond”, 2, etc.)

Page 9: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 99

Access Queries: Access Queries: Dynamic CriteriaDynamic Criteria

Parameterized Queries ► Dynamic query based on varying criteria value

• e.g. retrieve books written by a given author► Enter the parameter name in square brackets in criteria

• Do not use existing field names• Can use expressions

e.g. Like "*" & [Last Name] & "*“

Query Criteria from Form Entries► Use a form to enter query parameter values

• good for multiple parameter entries

1. Create a parameter query2. Create a form with unbound input control for each of query parameters3. Add a command button that will run the parameter query

• Run Query Action of Miscellaneous Category

4. Reference the form controls that hold parameter values from the query• i.e. change the criteria to form controls• Parameter name = fully qualified name of form control

Page 10: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 1010

Access Queries: Access Queries: JoinsJoins

Inner Join► Default join in Access (i.e. Natural Join)► Returns only the records where joined fields are equal in both tables

Left Outer join► Returns all records from the left table

Right Outer join► Returns all records from the right table

Page 11: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 1111

Access Queries: Access Queries: Advanced TypesAdvanced Types

Action Queries ► Append Query

• Appends table rows to an existing table► Delete Query

• Deletes table rows► Update Query

• Modifies the values of particular fields for particular records► Make Table Query

• Creates a new table from rows of other tables/queries will overwrite existing table of the same name

Crosstab Query ► Performs mathematical operations on intersection of two fields

SQL-Specific Queries ► Data-definition Query

• Defines/Changes the definition of a database object (e.g., create/modify a table)► Union Query

• Combines multiple SELECT queries ► Pass-through Query

• Send command directly to ODBC database server to run server-side SQL

Page 12: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 1212

Access Queries: Access Queries: Action QueriesAction Queries Append Query Appends table rows to an existing table

1. Create a select query.2. Convert the select query to an Append query

• Append Tool in Query Type group of Design tab3. Choose the destination fields for each column in the append query.4. Run the query to append rows/records.

Delete Query Deletes table rows1. Create a select query.2. Convert the select query to a Delete query.

• Delete Tool in Query Type group of Design tab3. Run the query to delete rows/records.

Update Query Modifies the values of particular fields for particular records1. Create a select query.2. Convert the select query to an Update query.

• Update Tool in Query Type group of Design tab3. Set Update To: (and Criteria when appropriate) rows4. Run the query to update fields/columns.

Make Table Query Creates a new table from rows of other tables/queries1. Create a select query.2. Convert the select query to a Make Table query.

• Make Table Tool in Query Type group of Design tab3. Run the query to update fields/columns.

Page 13: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 1313

Access Queries: Access Queries: Crosstab QueryCrosstab Query Crosstab Query Performs mathematical operations on intersection of two fields

► Using the Crosstab Query Wizard1. Create a select query to join tables (if needed).2. Click Query Wizard in the Other group of the Create tab.3. Select Crosstab Query Wizard in the New Query dialog box & click OK.4. Choose table/query with which to create a crosstab query & click Next.5. Choose the field(s) whose values will be used as row headings & click Next.6. Choose the field whose values will be used as column headings & click Next.7. Choose a field and a function to use to calculate summary values.

The data type of the field that you select determines which functions are available.

► Using the Crosstab Tool1. Create a select query.2. Convert the select query to a Crosstab query

Crosstab Tool in Query Type group of Design tab3. Set Row Headings

Crosstab = Row Heading, Total = Group By, Sum, Avg, etc.4. Set Column Headings

Crosstab = Column Heading, Total = Group By5. Set the calculation field and function

Crosstab = Value, Total = Sum, Avg, etc.6. Set Criteria to filter data (if needed).

Total = Where, Criteria = expression

Page 14: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 1414

Access Queries: Access Queries: SQL QueriesSQL Queries

Data-definition Query Defines/Changes the definition of a database object

► Create a table• CREATE TABLE table_name

( field1 type(size), field2 type(size), … , PRIMARY KEY (field))

► Modify a table• ALTER TABLE table_name

ADD/ALTER COLUMN field type(size) DROP COLUMN field

Union Query Combines multiple SELECT queries ► Select queries must have the same fields (i.e., Union compatible)

• SELECT field1, field2, …. FROM table1UNIONSELECT fieldA, fieldB, …. FROM table2

1. Create the select queries in Design view2. Copy & paste SQL statements into a union query

Pass-through Query Send command directly to ODBC database server to run server-side SQL

1. Configure the server DBMS as an ODBC data source2. Create a Pass-through query

Page 15: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 1515

MS Access ReportsMS Access Reports Access Reports

► Allows presentation of table and query data in a customized layout► Good for data summarization► Not a tool for data manipulation► Optimized for printing rather than screen display

Report Views► Design View

• Provides a detailed view of report structure e.g., headers/footers for the report, page, groups

► Layout View• Useful for modifying appearance and readability of the report

e.g., setting column widths, adding grouping levels► Print Preview

• How the report will look when printed Displays page breaks, report columns, etc.

► Report View• For basic viewing the report

Can copy data

Page 16: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 1616

Access Reports: Access Reports: Creating ReportsCreating Reports Using the Report Tool

1. Select the source (table/query) of the report in the Navigation pane.2. Click the Report tool in the Reports group of the Create tab.

Using the Report Wizard1. Click the Report Wizard in the Reports group of the Create tab.2. Follow directions on the Report Wizard pages.

Using the Blank Report Tool1. Click the Blank Report tool in the Reports group of the Create tab.2. Drag fields from the Field List pane to the report

Page 17: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 1717

Access Reports: Access Reports: SectionsSections Report Header

► Appears once at the beginning of the report (before the page header)► Use for “Cover Page” information

• e.g., report author, company logo, date Page Header

► Appears at the top of every report page• e.g., report title

Group Header► Appears at the beginning of each group► Use for group name

• e.g., company name when grouped by company Detail

► Main body of the report (table/query data area) Group Footer

► Appears at the end of each group► Use for summary information for a group

Page Footer► Appears at the bottom of every page

• e.g. page numbers, dates Report Footer

► Appears once at the end of the report• e.g. report totals

Page 18: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 1818

Access Reports: Access Reports: Grouping & FilteringGrouping & Filtering

Creating a grouping Level► Access adds a header & footer corresponding to grouping field’s name

• e.g. grouped by Category Category Header, Category Footer

► Option in Report Wizard► Manual group creation

1. Click Group & Sort tool in Grouping & Totals group of Format/Design tab (Layout/Design view)2. Click Add a group in the Group, Sort, and Total pane.3. Select a field to group by4. Click More to set additional grouping options

Filtering Records► Using Select Query

• Set filtering conditions in query criteria

► Using Filter Properties• set Filter and Filter On properties (Data tab) of a report

Dynamic Criteria► Use Parameter Queries

Page 19: L546 Session 7, IU-SLIS 1 DB Implementation: MS Access Queries & Reports.

L546 Session 7, IU-SLISL546 Session 7, IU-SLIS 1919

Access Reports: Access Reports: Counting & SummingCounting & Summing

Using the Layout View1. Open a report in Layout View2. Select the field you want to count3. Click Totals icon in Groupings & Totals group of the Format tab4. Select an appropriate summary function5. Right-click the summary fields and click Set Caption

Using the Design View1. Open a report in Design View2. Place a Text Box in appropriate section of the report3. Set the Control Source property of the text box to be an expression using a summary function

• Summary counts: =COUNT([Field_NAME])• Sums: =SUM([Field_NAME])

4. Set the Running Sum property if running total is desired