THERE have been a number of articles in Smart Access

Size: px
Start display at page:

Download "THERE have been a number of articles in Smart Access"

Transcription

1 Prometheus Unbound Smart Access David Moss If you re thinking of moving to a client/sever database, you can do it in Access. However, if you re going to get the performance that you need, then you ll need to change the way that you do things. David Moss shows how to replace the built-in functionality with some reusable code. THERE have been a number of articles in Smart Access over the past two years about the issues raised by moving Jet applications to a client/server architecture. Clearly, we re all doing it. The primary issue is that, in a high-volume, multi-user client/server system, you re not going to use bound forms. You have to use unbound forms to avoid flooding the network with huge recordsets and to give the database engine some chance of managing record locks. Without bound forms, there are many built-in facilities of Access that you can t use instead, you ll have to write your own. To prevent rewriting that code for each project, you ll need some standard routines to handle these activities. I ve created a maintenance toolbar, shown in Figure 1, that replaces this functionality. I add this toolbar to my forms (renaming it each time). This article will show you what routines that toolbar should have, discuss some of the pitfalls, and share with you some of the opportunities that become available. You might find it useful to re-read the article Client/Server Development with Access by Mary Chipman and Mike Gunderloy in the August 1999 issue of Smart Access. Where that article outlines the techniques required, this article will show you some of the code. Some developers use SQL Server as their back end, some use DB2, and others use Oracle. The examples in this article are based on an Oracle back end. Some Oracle-specific features will necessarily intrude, but my intention is to concentrate on the Access end and techniques that are Figure 1. A standard toolbar for unbound forms in a client/server application. common to all client/server applications (see the sidebar Data Access Methods for a discussion of understanding the different data access methods). Getting the data If your forms are unbound (that is to say, you don t set the RecordSource property), then there s no data for Access to retrieve when the user opens the form. To overcome this, the Open event of each of my forms has code like this: Private Sub Form_Open(Cancel As Integer) On Error GoTo Form_Open_Err iinitialise "Open" Set oamaintform = Me Set oamaintdynaset = oauser.dbcreatedynaset( _ "select * from cacauses", &O0) oamaintopeningsql = oamaintdynaset.sql oamaintreportname = "rptcauses" oamaintreportquery = "qrycauses" oamaintreportsql = "select * from cacauses " oamaintreportkey = "cacause" Form_Open_Err: ierror "Causes", "Form_Open" End Sub In this code, I set the values of the variables oamaintform, oamaintdynaset, and so on, that are used by standard code. The oamaintreport* variables are all used by the ireport method, called from the maintenance toolbar to produce reports based on the form specified in oamaintform. DbCreateDynaset is a method of OO4O, the data access method I m using to connect Access to the Oracle back-end database. You could substitute ADO, RDO, ADO, or even ADO.NET. OO4O includes an OraDynaset object (oamaintdynaset), which has an SQL property, an Updatable property, a Fields collection, and a DbRefresh method among others. If you ve worked with any set of Data Access Methods You need to choose carefully how to connect Access to your back-end database manager. I ve chosen Oracle Objects for OLE (OO4O) as my data access method. You may choose something else. How do you choose? I recommend Oracle Programming with Visual Basic by Nick Snowdon (Sybex, 1999). I found that it helped me to untangle the alphabet spaghetti of ADO, DAO, ODBCDirect, OO4O, and RDO. It could prove useful to you even if you don t use Oracle as a back end. 14 Smart Access October 2001

2 data access object, the point of these properties is probably obvious. ierror is a standard procedure of mine that s used to display errors raised by Access or Oracle or both. I ll discuss iinitialise later in this article. To get back to the point, in the Form_Open procedure it s the method that retrieves the data and moves it to the form. The routine looks like this: Sub () If oamaintopeningsql = "" Then On Error GoTo _Err For Each oamaintfield In oamaintdynaset.fields If IsNull(oaMaintField.Value) Then oamaintform(oamaintfield.name) = "" oamaintform(oamaintfield.name) = _ oamaintfield.value If oamaintfield.oraidatatype = 2 Then oamaintform(oamaintfield.name) = _ Val(oaMaintForm(oaMaintField.Name)) Next oamaintfield On Error Resume Next oamaintform.icurrent 'default to no edit oamaintform.allowedits = False _Err: 'problem getting LONG data without RowId If Left(Err.Description, 9) = "OIP-04131" Then Resume Next ierror "Maintenance", "" End Sub Typically, I call from many procedures, and there might or might not be anything to display. So the first thing the code does is check to see whether there s a control on the form for each field in the dynaset. For this to work, the ControlName for each field must be the same as the FieldName in the recordset (which must be the same as the column name in the underlying table). If you don t want every field to display on the form, you must still provide a control, but you can set their Visible property to False. For each field, I extract the fieldname and data type. One of the Oracle numeric data types is stored as text, so my code converts it back to a number. In a databound form, the OnCurrent event is where you ll put much of your data-handling code. The OnCurrent event will never be raised by an unbound form. I add an icurrent procedure to my forms and call that from my method. I also set the form s AllowEdits property to False and require users to press the Edit button on the toolbar, which allows edits. By the way, only supports a single form view of the data. Navigation If your forms are unbound, then you can t use the Access navigation facilities and will have to write your own First Record, Next Record, Previous Record, Last Record, GoTo Record#, and AddNew procedures. My maintenance toolbar includes all of these functions. The iaddnew method, for example, looks like this: Public Function iaddnew() On Error GoTo iaddnew_err If iclean() Then iclear oamaintform.allowedits = True oamaintaddnew = True iaddnew_err: ierror "Maintenance", "iaddnew" My iclean routine, which is called from this code, checks to see whether any of the controls on the form have different values from the underlying recordset if so, they ve been updated, and the user is offered the chance to save the new values before navigating to a new row. My iclear method sets the value of each control on the form to a zero-length string. oamaintaddnew is a property of the maintenance object and is required by my isave method, which decides whether to create an SQL Update or Insert command based on this flag. Saving data My isave method is called by the Save button on the maintenance toolbar. For integrity reasons, all code within isave is run inside a transaction. The Access BeforeUpdate event will never be raised by an unbound form and so isave executes ibeforeupdate, which may optionally be included in the given oamaintform. Some dynasets are updatable, in which case isave calls the isaveupdatable routine, and others are not, in which case my code calls the isavenonupdatable routine. These both execute optional iafterupdate and iafterinsert procedures in the given oamaintform. isaveupdatable simply uses the DbUpdate method of the Oracle dynaset: Public Function isaveupdatable(bcancel As Boolean, _ bmsgbox As Boolean) Dim baddnew As Boolean Dim strmessage As String On Error GoTo isaveupdatable_err If oamaintaddnew Then baddnew = True oamaintaddnew = False oamaintcheck = False oamaintdynaset.dbaddnew baddnew = False oamaintdynaset.dbedit For Each oamaintfield In oamaintdynaset.fields If IsNull(oaMaintForm(oaMaintField.Name)) Or _ oamaintform(oamaintfield.name) = "" Then oamaintfield.value = Null oamaintfield.value = _ oamaintform(oamaintfield.name) Next oamaintfield oamaintdynaset.dbupdate If bmsgbox Then MsgBox "Data saved" Smart Access October

3 On Error Resume Next oamaintform.iafterupdate bcancel If bcancel Then If baddnew Then oamaintform.iafterinsert bcancel isaveupdatable_err: bcancel = True strmessage = "" If oauser.lastservererr = 2291 Then strmessage = _ "Data you have amended contravenes the " & _ "relationships between tables." & vbcrlf & _ "For example, you may have entered " & _ "a property reference number for a " & vbcrlf & _ "job and there is no such number on " & _ "the properties master table." ierror "Maintenance", "isaveupdatable",,, _ strmessage One difference between Jet applications and working with a server database is that, however complicated the JOIN in the underlying SQL statement, it s usually possible to create an updatable recordset with Jet/DAO. If all else fails, you can set the RecordsetType to Dynaset (Inconsistent Updates). There are, however, more constraints on updatability when it comes to SQL Server, DB2, and Oracle. In this environment, you ll encounter many more non-updatable recordsets (typically, views) that aren t susceptible to DbUpdate. Since it can t update through the recordset, my isavenonupdatable has to execute SQL Update or Insert statements against the underlying tables. The code then refreshes the dynaset using the DbRefresh method to rebuild the dataset to reflect the new data. The question arises: Is there any way in your code to know which table to manipulate? You know the field in the dynaset that s changed, but which of the n tables in the view did it come from? There s nothing (that I can find) in the Oracle data dictionary that identifies the source table of a column in a view. The only solution is to enforce strict naming conventions so that you can identify the source table from the fieldname (for example, all names with a prefix ca denote columns from the cacauses table). It s not very elegant, but that s the way it is. As with most refresh-like methods, Oracle s DbRefresh positions the cursor back at the first row of the dynaset. As a result, isavenonupdatable has additional code, not found in isaveupdatable, that navigates back to the row in the dynaset that was current when the user clicked on the Save button (and which is still displayed on the screen). Close iclose is a method of the maintenance object called by the Close button on the maintenance toolbar: Public Function iclose() Dim bcancel As Boolean If iclean() Then Err.Clear On Error Resume Next bcancel = False oamaintform.ibeforeclose bcancel If Not bcancel Then DoCmd.Close acform, oamaintform.name iinitialise "Close" One of the benefits of this technique is that it allows you to fill a hole in the Access event model. There s no BeforeClose event in the Access event model, but now you can add one here yourself. Simply declare an ibeforeclose routine in your code that accepts a single Boolean variable, and my routine will call it before closing. This allows the close action in my maintenance object to be canceled, unlike the Access Close event. To cancel the close in your ibeforeclose routine, set the parameter to True. When it comes to reports, the RecordSource has to be set to a pass-through query. One point to note here Access doesn t like subreports (or subforms) to be sourced from pass-through queries. The solution is to write your pass-through query and then write a non-pass-through query that selects data from the pass-through query and set the RecordSource of the subreport to the non-passthrough query. Sort Your forms are unbound, so you can t use the sort ascending and sort descending buttons provided by Access. This code replaces the Access routine: Public Function idescending() On Error GoTo idescendingerr oamaintorder = oamaintform.activecontrol. _ Properties("Name") & " DESC" If IsNumeric(Len( _ oamaintform.activecontrol.controlsource)) Then " ORDER BY " & oamaintorder If Not oaqbefilter = "" Then If InStr(oaMaintOpeningSQL, "where") = 0 Then " WHERE " & oaqbefilter & " ORDER BY " & _ oamaintorder " AND " & oaqbefilter & " ORDER BY " _ & oamaintorder DoCmd.Hourglass True oamaintdynaset.refresh DoCmd.Hourglass False oamaintorder = "" idescendingerr: MsgBox "You must select a control on the form "& _ "in order to sort the rows", vbexclamation The iorderascending and iorderdescending methods need to preserve the filter, if any, already 16 Smart Access October 2001

4 specified by the user and stored in oaqbefilter, a property of the maintenance object. QBE If your forms are unbound, then you can t use the Access filter by form and filter by selection facilities. You have to code your own. My ifilterbyselection is a fairly simple procedure that uses the oaqbefilter property of the maintenance object. ifilterbyselection needs to preserve the record order, if any, that s already been specified by the user and stored in oamaintorder, another property of the maintenance object. ifilterbyform, which allows the user to enter criteria in a form to filter records, by contrast, requires a lot more work on the part of the developer. You need to create a new form that s a copy of the original form using Access s CopyObject. Users can enter criteria on this form. You need to do this the first time the facility is used and then again if the controls have changed. Similarly, you need to create an Access table to hold the separate criteria that need to be ORed together. You need an iapplyfilter method to parse the criteria entered to create oaqbefilter, but this is just a SQL WHERE clause. Really, ifilterbyform is an application in its own right. In each case, you need to provide yourself with an iremovefilter method: two oamaintforms and two oamaintdynasets, but you won t have two instances of the oamaint* variables. One solution would be to move the code into a Class module and create an object. Another solution, and the one that I implemented, is to create a stack. The stack is implemented as a set of dynamic arrays: oastackform(), oastackdynaset(), and so on. Each time a form is opened, iopen pushes an entry onto the stack, and each time a form is closed my iinitialise routine pops the entry off the stack. My ipush and ipop routines use a lot of ReDim Preserve statements to resize these arrays. Note that ipop allows the developer to pass the focus back to the right form (SelectObject). Left to its own devices, if you re not using modal forms, when you close a form in Access the focus can go back to the database window or to your opening splash form instead of the previous form. Looking back As you can see, there s a lot of work to do when you move from the Access/Jet fileserver architecture to client/server. This article has set out most of the facilities that you ll need for file maintenance. It also probably reminded you just how much work Access has been doing for you in the past. The good news is that it s feasible (I ve done it), you should only have to do it once, it opens up new possibilities for the event model, and it solves the volume, performance, and multi-user problems posed by Public Function iremovefilter() oamaintdynaset.sql = oamaintopeningsql oamaintdynaset.refresh oamaintorder = "" oaqbefilter = "" 'display values Stack You ll also have to code your own ifind and ifindnext facilities and call them from the maintenance toolbar. These routines are more critical in client/server applications than they are in Jet applications. Suppose that the user is maintaining an orders table, adding an order for a customer, and needs to look up the customer ID. You re not going to have a combo box on the orders form sourced from the entire customers table not if it s got 80,000 rows on it and it s stored in a different tablespace on a different continent. Instead, you re going to open the customers maintenance form, look up the customer using ifind, and double-click their ID back into the orders form. This can create problems. My code is kept in a module called Maintenance consisting of a lot of procedures like iclean and iclear, plus a lot of global variables like oamaintform and oamaintdynaset. So, in the preceding situation, two forms are open for maintenance simultaneously and you need Smart Access October

5 big client/server applications. It would be a good thing to have a single object that handled all of this for us. I produced something like this maintenance object back in 1988 when I was a Clipper programmer and moved it successfully from application to application for years. That is, until Access 1 came along and did all of the work for me, at least for fileserver applications. Then my applications got bigger, and I had to reinvent my object. The code in this article is the fruit of that work. You should find it as useful as I have. David Moss is the proprietor of Business Consultancy Services Ltd. and designs, develops, and implements commercial database systems. dm@buscon.demon.co.uk. Remote Queries... Continued from page 13 can also be run on FoxPro, Excel, dbase, and other databases. Unfortunately, the documentation gave little information as to how this might actually be achieved. In one application that I ve deployed, I need to occasionally retrieve data from a spreadsheet. The following query retrieves data from sheet1 of an Excel spreadsheet that s been set up as a database table: SELECT [Sheet1$].* FROM [Sheet1$] IN 'G:\Claims97\FAI\Fai_Loader.xls '[Excel 8.0;]; This has proved really useful as the database administrator involved has been trained to use the Linked Table Add-In. If I added a link to the spreadsheet, the utility would stop working when it hit the link. Even if Remote Queries aren t your cup of tea, I recommend that you take a look at the ReplaceQuery and SysTables functions that I ve included in the sample databases. They re good universal pieces of code that I ve used in a number of applications. I m continually finding reasons to use Remote Queries in my software development. They re simple to set up and maintain in software, and they allow me to continue to use the Linked Table Add-In for my normal linked tables. While I don t recommend that you convert your databases from linking technology to Remote Queries, this is useful technology to have in your knowledge bank. Also, the technology has been around and works very well in both Access 97 and 2000 with no conversion issues. REMOTEQ.ZIP at Garry Robinson is the founder of GR-FX Pty Limited, a company based in Sydney, Australia. If you want to keep up to date with the his latest postings on Access Issues, visit his company s Web site at or sign up for his Access newsletter by sending a blank to tips@gr-fx.com. If you like the approach Garry took in this article, why not try out the new version of Graf-FX, which uses Remote Queries to graph data from any remote table or query? When Garry isn t sitting at a keyboard, he can be found playing golf or exploring the remote National Parks that surround Sydney , garry@gr-fx.com. Further Reading and Resources Here are three resources where you can find more information: Open the Access Help and contents file and choose Index. Enter IN Clause to find some useful examples. Smart Access extra issue 2.13 (June 20, 2001) had a piece on Linking With Passwords that will provide you with some interesting information on passwords and linking. Archives of past issues of the enewsletter are available at In the November 1998 of Smart Access, I wrote an article, Adding Database Tools To Excel Spreadsheets, which described some of the good and bad things about linking to Excel spreadsheets. 18 Smart Access October 2001

A Back-End Link Checker for Your Access Database

A Back-End Link Checker for Your Access Database A Back-End for Your Access Database Published: 30 September 2018 Author: Martin Green Screenshots: Access 2016, Windows 10 For Access Versions: 2007, 2010, 2013, 2016 Working with Split Databases When

More information

Save and Load Searches in Access VBA

Save and Load Searches in Access VBA Save and Load Searches in Access VBA How to allow your users to load and save form states in Access through VBA to provide cross-session saving and retrieval of search or other information. This article

More information

In this chapter, I m going to show you how to create a working

In this chapter, I m going to show you how to create a working Codeless Database Programming In this chapter, I m going to show you how to create a working Visual Basic database program without writing a single line of code. I ll use the ADO Data Control and some

More information

NOT long ago, I had a discussion with a sales

NOT long ago, I had a discussion with a sales Send Your Files Anywhere Smart Access 2000 2002 Keith Bombard Keith Bombard shows you how to create a fully automated system for file transmission across the Internet using just Access and Outlook. NOT

More information

How to use data sources with databases (part 1)

How to use data sources with databases (part 1) Chapter 14 How to use data sources with databases (part 1) 423 14 How to use data sources with databases (part 1) Visual Studio 2005 makes it easier than ever to generate Windows forms that work with data

More information

Find and Filter Records on a Form

Find and Filter Records on a Form Find and Filter Records on a Form Callahan Chapter 3 All About Me Review each form/report can have its own module Me a reference to the form/report whose code is currently executing eg: Me.AllowEdits =

More information

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi.

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi. Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 18 Tries Today we are going to be talking about another data

More information

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller Table of Contents Introduction!... 1 Part 1: Entering Data!... 2 1.a: Typing!... 2 1.b: Editing

More information

END-TERM EXAMINATION

END-TERM EXAMINATION (Please Write your Exam Roll No. immediately) END-TERM EXAMINATION DECEMBER 2006 Exam. Roll No... Exam Series code: 100274DEC06200274 Paper Code : MCA-207 Subject: Front End Design Tools Time: 3 Hours

More information

Access Intermediate

Access Intermediate Access 2010 - Intermediate 103-134 Advanced Queries Quick Links Overview Pages AC116 AC117 Selecting Fields Pages AC118 AC119 AC122 Sorting Results Pages AC125 AC126 Specifying Criteria Pages AC132 AC134

More information

ONE of the challenges we all face when developing

ONE of the challenges we all face when developing Using SQL-DMO to Handle Security in ADPs Russell Sinclair 2000 2002 Smart Access MSDE is a powerful, free version of SQL Server that you can make available to your users. In this issue, Russell Sinclair

More information

ACCESS isn t only a great development tool it s

ACCESS isn t only a great development tool it s Upsizing Access to Oracle Smart Access 2000 George Esser In addition to showing you how to convert your Access prototypes into Oracle systems, George Esser shows how your Access skills translate into Oracle.

More information

Smart Access. SOMETIMES you need to hold some data in a table to work with it over. Temporary Tables. with No Bloat. Doug Den Hoed. vb123.

Smart Access. SOMETIMES you need to hold some data in a table to work with it over. Temporary Tables. with No Bloat. Doug Den Hoed. vb123. vb123.com Smart Access Solutions for Microsoft Access Developers Temporary Tables with No Bloat Doug Den Hoed 2000 Temporary tables are great for extending query functionality, storing transient data,

More information

Acknowledgments Introduction. Chapter 1: Introduction to Access 2007 VBA 1. The Visual Basic Editor 18. Testing Phase 24

Acknowledgments Introduction. Chapter 1: Introduction to Access 2007 VBA 1. The Visual Basic Editor 18. Testing Phase 24 Acknowledgments Introduction Chapter 1: Introduction to Access 2007 VBA 1 What Is Access 2007 VBA? 1 What s New in Access 2007 VBA? 2 Access 2007 VBA Programming 101 3 Requirements-Gathering Phase 3 Design

More information

The first thing we ll need is some numbers. I m going to use the set of times and drug concentration levels in a patient s bloodstream given below.

The first thing we ll need is some numbers. I m going to use the set of times and drug concentration levels in a patient s bloodstream given below. Graphing in Excel featuring Excel 2007 1 A spreadsheet can be a powerful tool for analyzing and graphing data, but it works completely differently from the graphing calculator that you re used to. If you

More information

Filter and PivotTables in Excel

Filter and PivotTables in Excel Filter and PivotTables in Excel FILTERING With filters in Excel you can quickly collapse your spreadsheet to find records meeting specific criteria. A lot of reporters use filter to cut their data down

More information

CS Introduction to Data Structures How to Parse Arithmetic Expressions

CS Introduction to Data Structures How to Parse Arithmetic Expressions CS3901 - Introduction to Data Structures How to Parse Arithmetic Expressions Lt Col Joel Young One of the common task required in implementing programming languages, calculators, simulation systems, and

More information

USING ODBC COMPLIANT SOFTWARE MINTRAC PLUS CONTENTS:

USING ODBC COMPLIANT SOFTWARE MINTRAC PLUS CONTENTS: CONTENTS: Summary... 2 Microsoft Excel... 2 Creating a New Spreadsheet With ODBC Data... 2 Editing a Query in Microsoft Excel... 9 Quattro Pro... 12 Creating a New Spreadsheet with ODBC Data... 13 Editing

More information

Access Intermediate

Access Intermediate Access 2013 - Intermediate 103-134 Advanced Queries Quick Links Overview Pages AC124 AC125 Selecting Fields Pages AC125 AC128 AC129 AC131 AC238 Sorting Results Pages AC131 AC136 Specifying Criteria Pages

More information

Visual Basic 6 includes many tools to help you create, revise, manage, and

Visual Basic 6 includes many tools to help you create, revise, manage, and 0625-0 Ch01.F 7/10/03 9:19 AM Page 11 Chapter 1 The Big Picture: Visual Basic s Database Features In This Chapter Sampling Visual Basic s most important database features Connecting an application to a

More information

Bruce Moore Fall 99 Internship September 23, 1999 Supervised by Dr. John P.

Bruce Moore Fall 99 Internship September 23, 1999 Supervised by Dr. John P. Bruce Moore Fall 99 Internship September 23, 1999 Supervised by Dr. John P. Russo Active Server Pages Active Server Pages are Microsoft s newest server-based technology for building dynamic and interactive

More information

VBA Final Project: xlbooster Dan Patten

VBA Final Project: xlbooster Dan Patten VBA Final Project: xlbooster Dan Patten Table of Contents Executive Summary... 2 Implementation Documentation... 3 Basic Structure... 3 Code Structure... 3 Ribbon... 4 Group Sheet Manager... 4 Treeview...

More information

Access Forms Masterclass 5 Create Dynamic Titles for Your Forms

Access Forms Masterclass 5 Create Dynamic Titles for Your Forms Access Forms Masterclass 5 Create Dynamic Titles for Your Forms Published: 13 September 2018 Author: Martin Green Screenshots: Access 2016, Windows 10 For Access Versions: 2007, 2010, 2013, 2016 Add a

More information

ADO.NET from 3,048 meters

ADO.NET from 3,048 meters C H A P T E R 2 ADO.NET from 3,048 meters 2.1 The goals of ADO.NET 12 2.2 Zooming in on ADO.NET 14 2.3 Summary 19 It is a rare opportunity to get to build something from scratch. When Microsoft chose the

More information

Chapter 8 Relational Tables in Microsoft Access

Chapter 8 Relational Tables in Microsoft Access Chapter 8 Relational Tables in Microsoft Access Objectives This chapter continues exploration of Microsoft Access. You will learn how to use data from multiple tables and queries by defining how to join

More information

Simply Access Tips. Issue February 2 nd 2009

Simply Access Tips. Issue February 2 nd 2009 Hi [FirstName], Simply Access Tips Issue 02 2009 February 2 nd 2009 Welcome to the second edition of Simply Access Tips for 2009. Housekeeping, as usual, is at the end of the Newsletter so; if you need

More information

Customizing Access Parameter Queries

Customizing Access Parameter Queries [Revised and Updated 15 August 2018] Everyone likes parameter queries! The database developer doesn't have to anticipate the user's every requirement, and the user can vary their enquiries without having

More information

Making ERAS work for you

Making ERAS work for you Making ERAS work for you (Beyond the basics) If you ve used ERAS for your application season, you ve probably mastered the basics; collecting mail from ERAS Post Office, checking boxes in the status listing,

More information

» How do I Integrate Excel information and objects in Word documents? How Do I... Page 2 of 10 How do I Integrate Excel information and objects in Word documents? Date: July 16th, 2007 Blogger: Scott Lowe

More information

CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise

CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise If you re not already crazy about Scheme (and I m sure you are), then here s something to get

More information

Access Made Easy. Forms.

Access Made Easy. Forms. Access Made Easy Forms 05 www.accessallinone.com This guide was prepared for AccessAllInOne.com by: Robert Austin This is one of a series of guides pertaining to the use of Microsoft Access. AXLSolutions

More information

Background. $VENDOR wasn t sure either, but they were pretty sure it wasn t their code.

Background. $VENDOR wasn t sure either, but they were pretty sure it wasn t their code. Background Patient A got in touch because they were having performance pain with $VENDOR s applications. Patient A wasn t sure if the problem was hardware, their configuration, or something in $VENDOR

More information

EXCEL + POWERPOINT. Analyzing, Visualizing, and Presenting Data-Rich Insights to Any Audience KNACK TRAINING

EXCEL + POWERPOINT. Analyzing, Visualizing, and Presenting Data-Rich Insights to Any Audience KNACK TRAINING EXCEL + POWERPOINT Analyzing, Visualizing, and Presenting Data-Rich Insights to Any Audience KNACK TRAINING KEYBOARD SHORTCUTS NAVIGATION & SELECTION SHORTCUTS 3 EDITING SHORTCUTS 3 SUMMARIES PIVOT TABLES

More information

Keep Track of Your Passwords Easily

Keep Track of Your Passwords Easily Keep Track of Your Passwords Easily K 100 / 1 The Useful Free Program that Means You ll Never Forget a Password Again These days, everything you do seems to involve a username, a password or a reference

More information

Civil Engineering Computation

Civil Engineering Computation Civil Engineering Computation First Steps in VBA Homework Evaluation 2 1 Homework Evaluation 3 Based on this rubric, you may resubmit Homework 1 and Homework 2 (along with today s homework) by next Monday

More information

VETtrak Data Insights User Guide. for VETtrak version

VETtrak Data Insights User Guide. for VETtrak version VETtrak Data Insights User Guide for VETtrak version 4.4.8.2 Contents Data Insights User Guide... 2 What are Data Insights?... 2 Why is it called Data Insights?... 2 Why did we create this new feature?...

More information

Intro. Scheme Basics. scm> 5 5. scm>

Intro. Scheme Basics. scm> 5 5. scm> Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if

More information

Language Basics. /* The NUMBER GAME - User tries to guess a number between 1 and 10 */ /* Generate a random number between 1 and 10 */

Language Basics. /* The NUMBER GAME - User tries to guess a number between 1 and 10 */ /* Generate a random number between 1 and 10 */ Overview Language Basics This chapter describes the basic elements of Rexx. It discusses the simple components that make up the language. These include script structure, elements of the language, operators,

More information

Lies, Damned Lies, Statistics and SQL

Lies, Damned Lies, Statistics and SQL Lies, Damned Lies, Statistics and SQL by Peter Lavin December 17, 2003 Introduction When I read about the Developer Shed December Giveaway Contest in the most recent newsletter a thought occurred to me.

More information

DataMaster for Windows

DataMaster for Windows DataMaster for Windows Version 3.0 April 2004 Mid America Computer Corp. 111 Admiral Drive Blair, NE 68008-0700 (402) 426-6222 Copyright 2003-2004 Mid America Computer Corp. All rights reserved. Table

More information

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 14 Database Connectivity and Web Technologies

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 14 Database Connectivity and Web Technologies Database Systems: Design, Implementation, and Management Tenth Edition Chapter 14 Database Connectivity and Web Technologies Database Connectivity Mechanisms by which application programs connect and communicate

More information

MySQL Worst Practices. Introduction. by Jonathan Baldie

MySQL Worst Practices. Introduction. by Jonathan Baldie MySQL Worst Practices by Jonathan Baldie Introduction MySQL and MariaDB are two of the most popular database engines in the world. They re rightly chosen for their speed potential, portability, and the

More information

How is information stored?

How is information stored? How is information stored? Stored in system files on disk Sequential Files Random Access Files Need to write programs to access, modify, append data Example: Bank account system Program to debit/credit

More information

Access VBA LinkedIn Introduces object oriented programming and provides a foundation in the Access object model and the Visual Basic for Applications

Access VBA LinkedIn Introduces object oriented programming and provides a foundation in the Access object model and the Visual Basic for Applications Access VBA LinkedIn Introduces object oriented programming and provides a foundation in the Access object model and the Visual Basic for Applications VBA programming language. Excel Power Programming with

More information

CSCI 1100L: Topics in Computing Lab Lab 07: Microsoft Access (Databases) Part I: Movie review database.

CSCI 1100L: Topics in Computing Lab Lab 07: Microsoft Access (Databases) Part I: Movie review database. CSCI 1100L: Topics in Computing Lab Lab 07: Microsoft Access (Databases) Purpose: The purpose of this lab is to introduce you to the basics of creating a database and writing SQL (Structured Query Language)

More information

This chapter is intended to take you through the basic steps of using the Visual Basic

This chapter is intended to take you through the basic steps of using the Visual Basic CHAPTER 1 The Basics This chapter is intended to take you through the basic steps of using the Visual Basic Editor window and writing a simple piece of VBA code. It will show you how to use the Visual

More information

Microsoft Access XP (2002) Switchboards & Macros

Microsoft Access XP (2002) Switchboards & Macros Microsoft Access XP (2002) Switchboards & Macros Group/Summary Operations Creating a Switchboard Creating Macro Buttons From Wizards Creating Macros Manually Using the Condition Column Start Up Parameters

More information

Respond to Errors and Unexpected Conditions

Respond to Errors and Unexpected Conditions Respond to Errors and Unexpected Conditions Callahan Chapter 7 Practice Time Artie s List Loose Ends ensure that frmrestaurant s module has Option Explicit modify tblrestaurant field sizes Restaurant -

More information

AVANTUS TRAINING PTE LTD

AVANTUS TRAINING PTE LTD [MSACS13]: Microsoft Access 2013 Length : 3 Days Technology : Microsoft Office 2013 Delivery Method : Instructor-led (Classroom) Course Overview This Microsoft Access 2013 teaches participants how to design

More information

Integrating, Tagging, Printing, and Expanding

Integrating, Tagging, Printing, and Expanding Integrating, Tagging, Printing, and Expanding Peter Vogel Access Answers Smart Access 2000 2002 In this month s Access Answers column, Peter Vogel looks at replacing perfectly good Access functions, having

More information

Database Use & Design

Database Use & Design Database Use & Design 1 Important Terms and Definitions Database A collection of information organized in such a way that a computer program can quickly select desired pieces of data. Field Form Primary

More information

LABORATORY. 16 Databases OBJECTIVE REFERENCES. Write simple SQL queries using the Simple SQL app.

LABORATORY. 16 Databases OBJECTIVE REFERENCES. Write simple SQL queries using the Simple SQL app. Dmitriy Shironosov/ShutterStock, Inc. Databases 171 LABORATORY 16 Databases OBJECTIVE Write simple SQL queries using the Simple SQL app. REFERENCES Software needed: 1) Simple SQL app from the Lab Manual

More information

Smart Access. CROSSTAB queries are helpful tools for displaying data in a tabular. Automated Excel Pivot Reports from Access. Mark Davis. vb123.

Smart Access. CROSSTAB queries are helpful tools for displaying data in a tabular. Automated Excel Pivot Reports from Access. Mark Davis. vb123. vb123.com Smart Access Solutions for Microsoft Access Developers Automated Excel Pivot Reports from Access Mark Davis 2000 2002 Excel pivot reports are dynamic, easy to use, and have several advantages

More information

12B. Laboratory. Databases. Objective. References. Write simple SQL queries using the Simple SQL applet.

12B. Laboratory. Databases. Objective. References. Write simple SQL queries using the Simple SQL applet. Laboratory Databases 12B Objective Write simple SQL queries using the Simple SQL applet. References Software needed: 1) A web browser (Internet Explorer or Netscape) 2) Applet from the CD-ROM: a) Simple

More information

Introducing Databases

Introducing Databases 12 Introducing Databases WHAT YOU WILL LEARN IN THIS CHAPTER: What a database is and which databases are typically used with ASP.NET pages What SQL is, how it looks, and how you use it to manipulate data

More information

IN this installment of Access Answers, I m answering

IN this installment of Access Answers, I m answering Subforms to Security Access Answers Smart Access 2000 2002 Christopher Weber This month, Christopher Weber runs through questions that range from subforms to transparently joining secured workgroups. IN

More information

Learning to Provide Modern Solutions

Learning to Provide Modern Solutions 1 Learning to Provide Modern Solutions Over the course of this book, you will learn to enhance your existing applications to modernize the output of the system. To do this, we ll take advantage of the

More information

Fundamental Microsoft Jet SQL for Access 2000

Fundamental Microsoft Jet SQL for Access 2000 Fundamental Microsoft Jet SQL for Access 2000 (Microsoft Access 2000 Technical... Pagina 1 di 13 MSDN Home > MSDN Library > Office Solutions Development > Access 2000 > Technical Articles Fundamental Microsoft

More information

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17 01.433/33 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/2/1.1 Introduction In this lecture we ll talk about a useful abstraction, priority queues, which are

More information

Layout Assistant Help

Layout Assistant Help Layout Assistant Help The intent of this tool is to allow one to group controls on a form and move groups out of the way during the design phase, and then easily return them to their original positions

More information

Microsoft Access Database How to Import/Link Data

Microsoft Access Database How to Import/Link Data Microsoft Access Database How to Import/Link Data Firstly, I would like to thank you for your interest in this Access database ebook guide; a useful reference guide on how to import/link data into an Access

More information

HKTA TANG HIN MEMORIAL SECONDARY SCHOOL SECONDARY 3 COMPUTER LITERACY. Name: ( ) Class: Date: Databases and Microsoft Access

HKTA TANG HIN MEMORIAL SECONDARY SCHOOL SECONDARY 3 COMPUTER LITERACY. Name: ( ) Class: Date: Databases and Microsoft Access Databases and Microsoft Access Introduction to Databases A well-designed database enables huge data storage and efficient data retrieval. Term Database Table Record Field Primary key Index Meaning A organized

More information

Pre-Migration Cleanup

Pre-Migration Cleanup Database Clean Up Pre-Migration Cleanup Our database is dirty So is yours. The Visual Element Migrator can handle only so much dirt. We had to clean it up. Problems Total Quantity = 0 Percent in CS doesn

More information

This lecture presents ordered lists. An ordered list is one which is maintained in some predefined order, such as alphabetical or numerical order.

This lecture presents ordered lists. An ordered list is one which is maintained in some predefined order, such as alphabetical or numerical order. 6.1 6.2 This lecture presents ordered lists. An ordered list is one which is maintained in some predefined order, such as alphabetical or numerical order. A list is numerically ordered if, for every item

More information

It s possible to get your inbox to zero and keep it there, even if you get hundreds of s a day.

It s possible to get your  inbox to zero and keep it there, even if you get hundreds of  s a day. It s possible to get your email inbox to zero and keep it there, even if you get hundreds of emails a day. It s not super complicated, though it does take effort and discipline. Many people simply need

More information

Promo Buddy 2.0. Internet Marketing Database Software (Manual)

Promo Buddy 2.0. Internet Marketing Database Software (Manual) Promo Buddy 2.0 Internet Marketing Database Software (Manual) PromoBuddy has been developed by: tp:// INTRODUCTION From the computer of Detlev Reimer Dear Internet marketer, More than 6 years have passed

More information

Lecture 10 Notes Linked Lists

Lecture 10 Notes Linked Lists Lecture 10 Notes Linked Lists 15-122: Principles of Imperative Computation (Spring 2016) Frank Pfenning, Rob Simmons, André Platzer 1 Introduction In this lecture we discuss the use of linked lists to

More information

Creating If/Then/Else Routines

Creating If/Then/Else Routines 10 ch10.indd 147 Creating If/Then/Else Routines You can use If/Then/Else routines to give logic to your macros. The process of the macro proceeds in different directions depending on the results of an

More information

CS5412: TRANSACTIONS (I)

CS5412: TRANSACTIONS (I) 1 CS5412: TRANSACTIONS (I) Lecture XVII Ken Birman Transactions 2 A widely used reliability technology, despite the BASE methodology we use in the first tier Goal for this week: in-depth examination of

More information

This project was originally conceived as a pocket database application for a mobile platform, allowing a

This project was originally conceived as a pocket database application for a mobile platform, allowing a Dynamic Database ISYS 540 Final Project Executive Summary This project was originally conceived as a pocket database application for a mobile platform, allowing a user to dynamically build, update, and

More information

Manual Vba Access 2010 Close Form Without Saving

Manual Vba Access 2010 Close Form Without Saving Manual Vba Access 2010 Close Form Without Saving Close form without saving record Modules & VBA. Join Date: Aug 2010 bound forms are a graphic display of the actual field. updating data is automatic. But

More information

Enums. In this article from my free Java 8 course, I will talk about the enum. Enums are constant values that can never be changed.

Enums. In this article from my free Java 8 course, I will talk about the enum. Enums are constant values that can never be changed. Enums Introduction In this article from my free Java 8 course, I will talk about the enum. Enums are constant values that can never be changed. The Final Tag To display why this is useful, I m going to

More information

Working with Mailings

Working with Mailings 10 Working with Mailings An Overview of the Mail Merge Process... 202 Step 1: Setting Up the Main Document... 204 Step 2: Creating a Data Source... 205 Create a data source... 205 Customize data source

More information

BTEC Nationals IT - Unit2 FAQs

BTEC Nationals IT - Unit2 FAQs BTEC Nationals IT - Unit2 FAQs Q1 Q2 I need more clarity on what is required in the design task Is it expected that the race officials are entering times as raw times and then the table is set up so it

More information

DEVELOPING DATABASE APPLICATIONS (INTERMEDIATE MICROSOFT ACCESS, X405.5)

DEVELOPING DATABASE APPLICATIONS (INTERMEDIATE MICROSOFT ACCESS, X405.5) Technology & Information Management Instructor: Michael Kremer, Ph.D. Database Program: Microsoft Access Series DEVELOPING DATABASE APPLICATIONS (INTERMEDIATE MICROSOFT ACCESS, X405.5) Section 5 AGENDA

More information

Working Material. The Regulatory Authority Information System. RAIS 3.0 with SQL Server Extensions. Programmer s Guide. Part I Advanced Customization

Working Material. The Regulatory Authority Information System. RAIS 3.0 with SQL Server Extensions. Programmer s Guide. Part I Advanced Customization Working Material The Regulatory Authority Information System RAIS 3.0 with SQL Server Extensions Programmer s Guide Part I Advanced Customization Document version 1/12/2006 Contents 1 Introduction...1

More information

Sorting and Filtering Data

Sorting and Filtering Data chapter 20 Sorting and Filtering Data IN THIS CHAPTER Sorting...................................................... page 332 Filtering..................................................... page 337 331

More information

(Refer Slide Time 3:31)

(Refer Slide Time 3:31) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 5 Logic Simplification In the last lecture we talked about logic functions

More information

Implementing Table Operations Using Structured Query Language (SQL) Using Multiple Operations. SQL: Structured Query Language

Implementing Table Operations Using Structured Query Language (SQL) Using Multiple Operations. SQL: Structured Query Language Implementing Table Operations Using Structured Query Language (SQL) Using Multiple Operations Show Only certain columns and rows from the join of Table A with Table B The implementation of table operations

More information

The compiler is spewing error messages.

The compiler is spewing error messages. Appendix B Debugging There are a few different kinds of errors that can occur in a program, and it is useful to distinguish between them in order to track them down more quickly. Compile-time errors are

More information

Lecture 10 Notes Linked Lists

Lecture 10 Notes Linked Lists Lecture 10 Notes Linked Lists 15-122: Principles of Imperative Computation (Summer 1 2015) Frank Pfenning, Rob Simmons, André Platzer 1 Introduction In this lecture we discuss the use of linked lists to

More information

Visual Programming 1. What is Visual Basic? 2. What are different Editions available in VB? 3. List the various features of VB

Visual Programming 1. What is Visual Basic? 2. What are different Editions available in VB? 3. List the various features of VB Visual Programming 1. What is Visual Basic? Visual Basic is a powerful application development toolkit developed by John Kemeny and Thomas Kurtz. It is a Microsoft Windows Programming language. Visual

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

Creating the Data Layer

Creating the Data Layer Creating the Data Layer When interacting with any system it is always useful if it remembers all the settings and changes between visits. For example, Facebook has the details of your login and any conversations

More information

Word: Print Address Labels Using Mail Merge

Word: Print Address Labels Using Mail Merge Word: Print Address Labels Using Mail Merge No Typing! The Quick and Easy Way to Print Sheets of Address Labels Here at PC Knowledge for Seniors we re often asked how to print sticky address labels in

More information

Text Input and Conditionals

Text Input and Conditionals Text Input and Conditionals Text Input Many programs allow the user to enter information, like a username and password. Python makes taking input from the user seamless with a single line of code: input()

More information

2 A little on Spreadsheets

2 A little on Spreadsheets 2 A little on Spreadsheets Spreadsheets are computer versions of an accounts ledger. They are used frequently in business, but have wider uses. In particular they are often used to manipulate experimental

More information

ADD AND NAME WORKSHEETS

ADD AND NAME WORKSHEETS 1 INTERMEDIATE EXCEL While its primary function is to be a number cruncher, Excel is a versatile program that is used in a variety of ways. Because it easily organizes, manages, and displays information,

More information

Stamina Software Pty Ltd. TRAINING MANUAL Viságe BIT VIEWER

Stamina Software Pty Ltd. TRAINING MANUAL Viságe BIT VIEWER Stamina Software Pty Ltd TRAINING MANUAL Viságe BIT VIEWER Version: 3 31 st October 2011 Viságe BIT Viewer TABLE OF CONTENTS VISÁGE BIT VIEWER... 2 ELEMENTS OF THE VISÁGE BIT VIEWER SCREEN... 3 TITLE...

More information

The name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet.

The name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet. Mr G s Java Jive #2: Yo! Our First Program With this handout you ll write your first program, which we ll call Yo. Programs, Classes, and Objects, Oh My! People regularly refer to Java as a language that

More information

Publications Database

Publications Database Getting Started Guide Publications Database To w a r d s a S u s t a i n a b l e A s i a - P a c i f i c!1 Table of Contents Introduction 3 Conventions 3 Getting Started 4 Suggesting a Topic 11 Appendix

More information

TRYING to keep up with ActiveX Data Objects (ADO)

TRYING to keep up with ActiveX Data Objects (ADO) Accessing Records Peter Vogel 2000 Smart Access In this article, Peter Vogel looks at one of the newer features in ADO: the Record object. Peter outlines the object s future and shows how you can use it

More information

STOP DROWNING IN DATA. START MAKING SENSE! An Introduction To SQLite Databases. (Data for this tutorial at

STOP DROWNING IN DATA. START MAKING SENSE! An Introduction To SQLite Databases. (Data for this tutorial at STOP DROWNING IN DATA. START MAKING SENSE! Or An Introduction To SQLite Databases (Data for this tutorial at www.peteraldhous.com/data) You may have previously used spreadsheets to organize and analyze

More information

Asset Keeper Pro - Asset Listing Inside and Out - Part I

Asset Keeper Pro - Asset Listing Inside and Out - Part I Introduction The Asset Listing is used to find one or more assets that you want to review or edit. There is a great deal to discover about the Asset Listing and at times, it can be overwhelming. Because

More information

Chapter 2. DB2 concepts

Chapter 2. DB2 concepts 4960ch02qxd 10/6/2000 7:20 AM Page 37 DB2 concepts Chapter 2 Structured query language 38 DB2 data structures 40 Enforcing business rules 49 DB2 system structures 52 Application processes and transactions

More information

Excel programmers develop two basic types of spreadsheets: spreadsheets

Excel programmers develop two basic types of spreadsheets: spreadsheets Bonus Chapter 1 Creating Excel Applications for Others In This Chapter Developing spreadsheets for yourself and for other people Knowing what makes a good spreadsheet application Using guidelines for developing

More information

Exploring Microsoft Office Access Chapter 2: Relational Databases and Multi-Table Queries

Exploring Microsoft Office Access Chapter 2: Relational Databases and Multi-Table Queries Exploring Microsoft Office Access 2010 Chapter 2: Relational Databases and Multi-Table Queries 1 Objectives Design data Create tables Understand table relationships Share data with Excel Establish table

More information

ADO.NET 2.0. database programming with

ADO.NET 2.0. database programming with TRAINING & REFERENCE murach s ADO.NET 2.0 database programming with (Chapter 3) VB 2005 Thanks for downloading this chapter from Murach s ADO.NET 2.0 Database Programming with VB 2005. We hope it will

More information

6. Essential Spreadsheet Operations

6. Essential Spreadsheet Operations 6. Essential Spreadsheet Operations 6.1 Working with Worksheets When you open a new workbook in Excel, the workbook has a designated number of worksheets in it. You can specify how many sheets each new

More information

(Refer Slide Time: 00:01:30)

(Refer Slide Time: 00:01:30) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology, Madras Lecture - 32 Design using Programmable Logic Devices (Refer Slide Time: 00:01:30)

More information