Date post: | 02-Jan-2016 |
Category: |
Documents |
Upload: | doreen-summers |
View: | 218 times |
Download: | 2 times |
What Is a Query
SQL code in a database that gets specific data based on selected fields (columns) selected records (rows) selected (one or more) table(s)
in contrast to getting all data from one table
Initial Database Set-Up
download dbquery2000.mdb file for demonstration, NOT for this
quarter's project
start Microsoft Access open dbquery2000.mdb file if prompted, follow directions to convert
database to latest version of Access might have to convert back later
Creating Queries for Totals
click Create tabclick Query Designselect Payments table, click Add Close the Show Table window
Creating Queries for Totals - 2
double click BldgNo, AcctNo and Payment from Payments table when double clicked, item should go into
query table (or can drag & drop)
click totals button (Greek letter sigma) on toolbar at top of screen (view effect) click 3rd (Total) line in Payment column and select Sum from drop down list
Creating Queries for Totals - 3
click 3rd (Total) line in AcctNo column and select Where from drop down list put 5401 in Criteria (6th row) of AcctNo column don't need to use a criterion for this
quarter's project
change to Group By in BldgNo column
Creating Queries for Totals - 4
make sure that Show is checked for all columns except AcctNo close and save as default, Q5401 or [ ]right-click to Open this query to make sure it is getting the data it should could calculate totals in Excel to verify make changes if necessary
Creating Queries for Totals - 5
repeat steps in the preceding 4 slidesor copy and paste Query1 twice change the Criteria to 5601 for the 2nd
query, and 5801 the 3rd query
you should now have 3 queries Query1, Query2 and Query3 (or
whatever you want to call them)
Setting Up a Combined Query
click on Create then click Query Designclick Both tab in Show Table window select Buildings table, click Add select the 3 queries you just created, click Add Close the Show Table window
Combined Query - 2
left click, drag and drop BldgNo from Buildings table to BldgNo on 1st query should result in a connecting line
repeat with Buildings table and 2nd query, and then with Buildings table and 3rd query click and drag query tables up and down should see separate connecting lines
from Buildings table to each query
Combined Query - 3
right click on line between the Buildings table and the 1st queryselect Join Propertiesclick the radio button for 2. (Include all records from 'Buildings' …), then OK left join: all buildings , even if no cost datarepeat for line between Buildings table and 2nd query, and then between Buildings table and 3rd query
Combined Query - 4
double click BldgNo, Building, and SquareFeet and anything else you need from Buildings table when double clicked, item should go
into query table (or can drag & drop)
double click SumOfPayment in 1st query, then in 2nd and 3rd queries items should go into query table
Create Calculated Columns
in 1st open column, type:LeasePSF: [Q5401].[SumofPayment]/[SquareFeet]
source needs to match query name
repeat named as TaxPSF and OtherPSF, using data from 2nd and 3rd queriesuncheck Show for all 3 SumofPayment columns
Create Calculated Columns - 2
run querynote that some cells are blank "null" instead of a zero value buildings where there is no data for
that account #
null values can cause problems with VB.NET calculations and elsewhere
Create Calculated Columns - 3
getting zeros from Null datacreate calculated columns with code like
LeaseCost: Nz([Q5401].[SumOfPayment], 0) Nz returns 0 for Null numeric data and a
zero-length string for a Null text value after this is coded, it is possible to divide
[SumOfPayment] by [SquareFeet] to get LeasePSF for all properties
run, close and save as Query4 or [ ]Notes
SQL Code
Microsoft Access generated SQL code based on the query you just createduse View>SQL View to see SQL code could copy and paste this code into
VB.NET when need to create SQL statement for Access (or modify to SQL Server syntax)
Ending Database Set-Up
if need to use an earlier version of Access in your VB.NET project, convert this database to the previous version under another name e.g., propmgt2.mdb
close the database
SQL Server Query Editor
third-party tools can provide capabilities for SQL Server similar to those in Accessalso see How do you use the Query Designer in SQL Server 2008?
Using Queries in VB.NET
open VB.NET, start a Windows project Data>Add New Data Source > Database
> Next > New Connection > Data source: Change > Microsoft Access Database File > OK > Database file name: Browse > dbquery2000.mdb > Test Connection >OK > OK> [like to copy?] > Next [save the connection?] > Yes > Next > expand Views > [select combined query] > Finish
Using Queries in VB.NET - 2
drag and drop the Combined Query View from Data Sources onto form expand form and DataGridView to
show all fields run the project
Query Data Doesn't Update
data in this type of query: come from multiple tables include calculated and summary
fields
changes entered by user in textbox do not go into database queries OK for viewing data, or
creating reports, but not good for data entry
Queries as a DataSource
add a ListBox to the form set the DataSourceName property browse to find the [query]Binding Source
set the DisplayMember property browse to find one of the fields in the
query
run the code and note how ListBox selections navigate in DataGridView
Expressions in DataSet Schema
VB.NET provides capabilities to create formulas inside the schema (.xsd file) arithmetic, concatenation, decoding,
etc. less efficient for larger volumes of
data, but provides more independence from data sources
Using Queries in VB.NET - 3
right click [da]>Generate Dataset it may be helpful to rename it to ds be sure to check Add this dataset to the
designer, then OK
on Toolbox, click Data button then drag a DataView onto the designer in Properties window, rename it (dv1),
set its Table property to ds1.QueryCombined