Archive for the ‘Beginning Access’ Category
How do I Learn Access?
The question came as a private message, actually phrased, “How can my employee learn Access?” It seems that as part of her duties, the employee was tasked with taking over an Access database created by another employee. Regardless of the
circumstances this is an excellent question. Here are some thoughts on the subject.
learning curve
Access beginners often become discouraged when they start to realized that the learning curve is actually quite long and involved. “Learning Access” is quite unlike other learning they may have experienced. Frequently a question that seems to be quite simple leads to several other questions at a more fundamental level. Each of those questions can lead to yet additional even more fundamental questions.
background knowledge and skills
Frequently “learning Access” as in learning how to manipulate things within the Access environment, is only part of the issue. I can teach you the simple mechanics of designing and creating forms and reports from the perspective of how they will look, the size and relative position of their components in a few hours. Those skills, however, barely scratch the surface of “learning Access.”
Identifying the right tool for the job is an important skill that can save you hours of frustration and wasted effort. To identify the right tool you first need to understand the job, then you need to understand the possible tools. The Crabby Office Lady has an article with some guidelines about whether Access or Excel would be the better tool for particular jobs.
Think of it this way. I can teach you to use a calculator, how to press the keys to make numbers appear on the display and how to press the operator keys to add, subtract, multiply, and divide, reasonably quickly. But, unless you know what combination of addition, subtraction, multiplication, and division you will need to apply to solve your immediate problem, knowing how to use a calculator, how to punch numbers, won’t really help you much.
Access is like that on a grand scale. Unless you learn or already know, how to analyze data, and organize it according to relational data design principles, knowing how to create a table and add fields to it, won’t get you very far. Unless you learn, or already understand, the math behind the business problems you want a database to help with, knowing how to create calculated controls on forms and reports also won’t get you very far.
Not every database involves arithmetic calculations, of course, but there are many skills that go into developing a database application that go far beyond merely having “learned Access".”
learning by doing
There is nothing quite like experiential learning to build and enhance a permanent knowledge base. Identify a problem and then work at devising a solution. Unfortunately, if you are doing your experiential learning all on your own, what you learn and what may become a permanent part of your skill set, may not always be the best or even the ‘right’ way to solve your problem.
Experiential learning can also be a frustrating process. You may run into roadblocks that, once you have overcome them, seem to be quite inconsequential but, until they are overcome, stop you dead in your tracks. Sometimes the solution is a simple as missed dot or a missing space.
courses
There are a number of on-line or DVD based courses available. However, as good as their content may be, such courses, are unable to rephrase or modify how they explain topics in response to questions you may have. If you run into a concept that you have difficulty understanding, you may find yourself beating your head against the proverbial stone wall if an on-line or DVD course is your only learning resource.
I have to confess that I have a somewhat biased opinion when it comes to computer training courses. I facilitate instructor led training sessions for Office applications. I believe that such courses have a distinct advantage over on-line or DVD courses precisely because learners can ask questions, can say, “I don’t understand that point,” and the trainer or instructor can rephrase the explanation, suggest alternative analogies, or otherwise help the learner overcome hurdles in a timely fashion.
Check out courses that may be available through your local community college or other adult training facilities. If you live in or near my part of the world (north-eastern Ontario, Canada, pay a visit to The Enterprise Centre Computer Software Training & Development web page to see details on the training sessions we offer there.
Quote of the Day
Recommend to your children virtue; that alone can make them happy, not gold.
–Ludwig van Beethoven
print resources
Even in today’s electronic age, hardcopy books and articles can be excellent learning resources. I have found that no one book is the best for me. Where one book or author may do an excellent job on many topics, there may be other topics that one particular author or book does not touch or explains in a way that isn’t clear to me. Reading a different author’s treatment of the same subject frequently gets me on track.
In the recommended reading section below, I have listed two books that I have found helpful in understanding Access and what it can do.
on-line resources
In the past, newsgroups, and more recently on-line forums are excellent learning resources where you can ask questions about specific problems you are having and get helpful answers and suggestions. Although you may have to register in order to post questions, many on-line forums are free. In fact, I suggest you try the free forums first. Again, my bias may be showing, but one of the best Access forums is UtterAccess.com, where I am an administrator. George Hepworth, author of one of the books recommended below and several of the co-authors of the other book are UtterAccess members, moderators, or administrators, and frequent posters at UtterAccess.
recommended reading
George Hepworth’s Grover Park George on Access is a good introduction to relational database concepts in simple layperson’s language. If you are already comfortable with relational concepts and want to see more of Access in Action, you might find Microsoft Access Small Business Solutions
a worthwhile read.
Access Wiki – 2 Weeks and Counting
Quote of the Day
Real, constructive mental power lies in the creative thought that shapes your destiny, and your hour-by-hour mental conduct produces power for change in your life. Develop a train of thought on which to ride. The nobility of your life as well as your happiness depends upon the direction in which that train of thought is going.
-Laurence J. Peter
By the end of the day, the Access Wiki will have been ‘open for business’ for two weeks. The body of Access knowledge that the site promises to be is slowly building. As of this moment, there are 26 articles published in the wiki with articles including such topics as Normalization, Sharing (Access Databases through splitting), and Error Handling. Access Wiki content is expected to grow as UtterAccess members continue to write and publish articles. The wiki features a table of contents and an index if you want to look over a list of topics.
Meanwhile, on the forums side of UtterAccess, there is a whole new ‘look and feel.’ The new appearance is similar to what you will see one the Wiki side.
If you haven’t yet visited UtterAccess.com Forums or the Access Wiki, why not check them out now and see if you don’t agree that UtterAccess is the only source for all of your Microsoft help needs. The wiki and forums are freely available to anyone on the World Wide Web but only registered members can download code samples from the forums or write and edit wiki articles. Membership is free and confidential. Signing up will give you access to thousands of downloads and the opportunity to contribute your own articles to the Access Wiki
>Don’t be fooled!!
>
I was quite surprised yesterday to see reference to an article I wrote several years ago, Data Modeling for the Access Newcomer is an internet newsletter. I am not going to name the newsletter here because I don’t want to give it any free publicity. You won’t find it by links that I provide.
The particular newsletter follows the questionable practice of posting teasers about articles with links that lead to a sign-up page for their paid service. Once you have signed up, chances are all you will find is yet another link, this time to another site where the piece was available to you free of charge all the time. So you have just paid for, or at least signed up for a trial of, a service that frequently simply provides you links to pages and sites that a freely available without ever going near their service. If it was a free trial, you can bet they will then be soliciting you for a paid subscription. Definitely don’t buy the subscription unless you feel you are getting real value for your money.
In the case of my article, the full text of the article is freely available in Garry Robinson’s excellent VB123 blog. Garry recently purchased rights to the best years of Smart Access magazine (the years when Peter Vogel was the editor.) You can purchase electronic versions of sets of the magazine from Garry’s vb123 site if you are interested in a set of excellent articles that spanned the years from October 1996 to April 2006. That is almost 10 years of monthly issues with articles by hundreds of Access experts.
If you are just interested in my article, this link Data Modeling for the Access Newcomer, will take you to the full text of the article. Garry is very generously publishing the full text of individual Smart Access articles in his blog. He has a convenient index to the Smart Access articles.
There is an old expression that says, “Why buy the cow, when you can get the milk free?” While the expression can have a somewhat off-colour meaning, depending on its context, I think it deserves a paraphrase here, “Why pay for a link when you can get to the real article free?” If someone is trying to sell you links, use your favourite search engine to find your own links. It won’t cost you a cent.
>Creating Tables
>
In the last installment we explored the many to many relationships that exist between our various table. At that point we had not yet created the tables. This article will deal with the nuts and bolts of actually creating a table.
A word about names
The names you use when you create your database objects are important and should follow certain guidelines. Access reserves certain words for its own use. Logically these words are known as reserved words. Unfortunately some of these words are the first that comes to mind when you are trying to name fields for example. In this article I discussed at a conceptual lever, the tables we need in the Ice Cream Parlour database. If you look back to that article you will see names like ‘Name”, “Description”, and “Type”. These words all have special meaning within Access and should not be used to name Access objects.
So you will notice that the field names in the relationship diagrams in my last article are different from those I used in the conceptual diagrams. So, for example I have a field ‘strSundaeName’ rather than simply ‘Name’. What about the ‘str.’ That part of the name comes from a convention I follow to add a prefix to the name that indicates the datatype of the field. Many Access developers do not use prefixes for field names. So SundaeName would be perfectly acceptable and, in fact, preferred by many developers.
On the other hand, many developers do follow a naming convention that prefixes the names of Access objects like tables, queries, forms and reports, with three characters to signify the type of object to which the name pertains. So, for example, the Sundaes table is actually called ‘tblSundaes’.
Notice also that tables are usually plural. That is because the table contains records where each record is one example (or instance) of the subject of the table. So, tblSundaes has fields with names like strSundaeName (or SundaeName, if you prefer.)
Creating a table
There are several ways to create a table in Access. Although I don’t recommend it, you can design a table by entering data into a datasheet. Access will determine the data type for each field based on the data you enter. And unless you are careful to name each field, Access will assign such helpful field names as Field1, Field2, etc.
In Access versions prior to 2007 there are table creation wizards and in 2007 there are table templates to help you out. Unfortunately, tables created by wizards or from Access 2007 templates have field names that do not follow accepted naming standards. They include spaces in the field names. Now, while this may seem perfectly natural to you if you are an Access beginner, those spaces will come back to haunt you when you decide to enhance your work using advanced features like Visual Basic for Applications (VBA).
I prefer to create all tables using the Table Design View. Before we go there, however, we should map out the fields we will need and determine what their respective data types should be. For the sake of illustration I am going to deal with creating one of the tables we have decided we need. If you are following along and creating your own ice cream parlour database, the best way for you to learn will be for you to create the other tables on your own. I will be providing a link to my version of the database with all tables created.
Before we look at the table designer, let’s summarize the information we will need for each table. I am indicating two possible names for each field. The first name follows the naming convention I prefer to use. The second is a valid name in a format that omits the data type prefix. Whichever style you choose, it is important to be consistent throughout the database.
Sundaes – tblSundaes
|
attribute |
field name |
alternate name |
data type |
data size |
notes |
| Primary Key | idsSundae | SundaeID | Autonumber | long integer |
|
| Name | strSundaeName | SundaeName | Text | 25 |
Dishes – tblDishes
|
attribute |
field name |
alternate name |
data type |
data size |
notes |
| Primary Key | idsDish | DishID | Autonumber | long integer |
|
| Name | strDishName | DishName | Text | 25 | |
| Type | lngDishType | DishType | Number | long integer |
foreign key – used to find the dish type description in the types lookup table |
Sizes – tblSizes
|
attribute |
field name |
alternate name |
data type |
data size |
notes |
| Primary Key | idsSize | SizeID | Autonumber | long integer |
|
| Name | strSizeName | SizeName | Text | 25 | |
| Type | lngSizeType | SizeType | Number | long integer |
foreign key – used to find the dish type description in the types lookup table |
Flavors – tblFlavors
|
attribute |
field name |
alternate name |
data type |
data size |
notes |
| Primary Key | idsFlavor | FlavorID | Autonumber | long integer |
|
| Name | strFlavorName | FlavorName | Text | 25 |
Ingredients – tblIngredients
|
attribute |
field name |
alternate name |
data type |
data size |
notes |
| Primary Key | idsIngredient | IngredientID | Autonumber | long integer |
|
| Name | strIngredientName | IngredientName | Text | 25 | |
| Type | lngIngredientType | IngredientType | Number | long integer |
foreign key – used to find the dish type description in the types lookup table |
Those are the basic definitions of our five central table. As already noted, we will need additional tables in the database to allow us to connect these central tables together so that the database reflects the one to many relationships between them. We will also need a lookup table for types the type descriptions used by tblDishes, tblSizes, and tblIngredients.
Coming next: Using the table designer.
