logo

Microsoft Excel and Access Integration with Office 2007 P2


8 Part I ■ Basic Integration Techniques The Access Table Now that you have reviewed what type of Excel data format is compatible with Access, let’s take a brief look at where the Excel data will be going — the Access table. Access contains many objects that are very useful in manipulat- ing and presenting data. The table is where the data is stored. Queries, forms, reports, and other Access objects ultimately reference data in an Access table. The Table in the Datasheet View In the sample files for this book, you will find a sample Access database. Open this database. When the database is open, go up to the application ribbon, select the Create tab, and then click the Table command button. A new table similar to the one illustrated in Figure 1-4 is activated in Datasheet view. You will notice how similar the table is to a blank Excel spreadsheet. Both are organized by row and column. As with an Excel flat file and indexed list, each row corresponds to a record of data and each column corresponds to a field or a unique data element within the record. As you can imagine, one way to create a table in Access is to start entering data in the Datasheet view. You can enter new data fields by entering data in the cells and pressing the Tab key. Enter a new record by pressing Enter. This method of entry will work if you need to get very small Excel lists into Access. However, there are much more efficient and powerful methods such as importing and linking, which you will explore later in this chapter. The Table in the Design View At the far left end of the Access ribbon, you will see the View icon. Click the View icon and select Design from the drop down menu. After being prompted to save and name the table, you will see the Design view (see Figure 1-5). Figure 1-4: The Access table in the Datasheet view Chapter 1 ■ Getting Excel Data into Access 9 Figure 1-5: The Access table in the Design view Here you can change the properties of the fields in the table: the field name, the data type (which characterizes what kind of information exists in the field), and a description (where you can manually enter a more descriptive word or phrase about the field). Different Types of Data Ten data types can be defined in Access. You will probably use just a few of them. However, this section includes a brief description of all the types in case you are relatively new to Access. The 10 data types are: Text, Memo, Number, Date/Time, Currency, AutoNumber, Yes/No, OLE Object, Hyperlink, and Attachment. ■■ Text: Text is the most common data type you will use in Access. Techni- cally, any combination of letters, numbers, and characters is text — even spaces! Keep in mind that any number stored as text cannot be used in a calculation. Examples of numbers commonly stored as the Text data type are customer numbers, product SKUs, or serial numbers. Obviously, you would never perform any calculations on these types of numbers. The Text data type is limited to a maximum of 255 characters. ■■ Memo: The Memo field allows you to store text data that exceeds the 255-character limit of the text field. ■■ Number: The Number field is a numeric data type that is actually sev- eral data types under one heading. Use this data type with fields that might be summed or otherwise modified through arithmetic operations. 10 Part I ■ Basic Integration Techniques After selecting the Number data type in the Design view of the table, go to the Field Size field at the top of the Field Properties menu. Selecting this menu will give you the following choices: Byte, Integer, Long Inte- ger, Single, Double, Replication ID, and Decimal. The most common field sizes of the Number data type are Long Integer and Double. Long Integer should be selected if the numbers are whole numbers (no deci- mals). Double should be selected if decimal numbers need to be stored in that field. ■■ Date/Time: The Date/Time data type is used to record the exact time or date that certain events occurred. The posting date of a transaction and the exact time a service call was placed are perfect examples of fields where the Date/Time data type is most useful. ■■ Currency: The Double field size of the Number data type can also be used for currency fields, but the Currency data type is ideal to store all data that represents amounts of money. ■■ AutoNumber: This data type is a Long Integer that is automatically cre- ated for each new record added to a table, so you will never enter data into this field. The AutoNumber can be one mechanism by which you can uniquely identify each individual record in a table, but it is best practice to use a unique record identifier that already exists in your data set. ■■ Yes/No: There are situations where the data that needs to be repre- sented is in a simple Yes/No format. Although you could use the Text data type for creating a True/False field, it is much more intuitive to use Access’s native data type for this purpose. ■■ OLE Object: This data type is not encountered very often in data analy- sis. It is used when the field must store a binary file, such as a picture or sound file. ■■ Hyperlink: When you need to store an address to a web site, this is the preferred data type. ■■ Attachment: You can use attachments to store several files, and even different types of files, in a single field. The Attachment field is new for Access 2007 and stores data files more efficiently than using other fields like the OLE Object field. Different data types and field sizes can get overwhelming, but don’t worry. When you import your data from Excel, Access will choose a default type for you. Most of the time, the default type is correct. If it’s not, however, you have the opportunity to change it when importing or when you data is already in Access. Chapter 1 ■ Getting Excel Data into Access 11 Table and Field Naming Conventions There are important conventions and limitations when it comes to naming your access database tables and fields within those tables. The maximum length of a field name is 64 characters. Although you should give your fields descriptive names to clarify what the field represents, try using considerably less than the 64-character limit. In addition, your field name cannot include a period (.), an exclamation point (!), an accent grave (`), or brackets ([ ]). T I P It’s good practice not to put any spaces in field or table names. When constructing queries or referring to tables in VBA code, spaces in the field names can lead to problems. If you need to indicate a space in your field name, use the underscore character (_). Bringing Your Excel Data into Access From the prior section, you know that your Excel data must be in flat file or indexed list format to be compatible with Access. Once you have your Excel data in the correct form, you can start bringing that data into Access. This sec- tion introduces the many ways of getting Excel data into Access. Importing a Worksheet into a New Table Open Microsoft Access and select the Blank Database icon as demonstrated in Figure 1-6. On the right, you see an input box used to name your new database. Figure 1-6: Menu for creating a new database 12 Part I ■ Basic Integration Techniques N OT E By default, all new databases are automatically created in the My Documents directory (in Vista, the default directory is the Documents directory). You can select a different location for your database by clicking the folder icon next to the input box containing the name of the database. When you click the Create button, you will have an empty database. At this point, start by bringing in employee data. The employee data you need comes from Human Resources. They export it from their HR system into an Excel file and make some manual adjustments to it each month. You can take a look at the data in the Excel file EmployeeMaster (see Figure 1-7). T I P The ExcelMaster.xlsx file can be found within the sample files for this book installed under C:\Integration. The data looks to be in indexed list format with Employee Number uniquely identifying each record. Now let’s import our worksheet to a new Access table with the Access Import Spreadsheet Wizard. To begin importing an Excel spreadsheet, simply click the External Data tab and then click the Excel icon above the import section. If you are familiar with earlier versions of Access, you will remember that this functionality was buried several layers deep within the File menu. Now browse for the file you want to import and then select the option Import the source data into a new table in the current database. Figure 1-8 shows you what the wizard should look like now. Figure 1-7: Employee data in Excel Chapter 1 ■ Getting Excel Data into Access 13 Figure 1-8: Select the data source and select the import option. Click the OK button to activate the Import Spreadsheet Wizard shown in Figure 1-9. The first box in the Import Spreadsheet Wizard allows you to spec- ify the worksheet or range you want to import. If your workbook has more than one worksheet, all worksheets will be listed here. In this case, there is only one worksheet. Select the target worksheet and click the Next button. Figure 1-9: Identify the worksheet or range you want to import. 14 Part I ■ Basic Integration Techniques The next screen allows you to select whether the source data has headings at the tops of the columns (see Figure 1-10). As you can see, you simply check the check box if your source data has headings. Click the Next button to move on. The next screen allows you to specify the data type for each field (see Figure 1-11). This setting allows you to tell Access whether the given field is a num- ber, text, currency, date, or so on. The idea is to select each field and check to make sure the data type for that field is correct. In addition, you can specify whether any given field is to be indexed. When you index a field, Access cre- ates a kind of organizational mapping of the field allowing for faster querying and grouping. The best way to illustrate indexing is by an analogy. Imagine you had a file cabinet with 10,000 folders, each dedicated to a specific customer. Now imag- ine these files were in random order. To access the customer name Schnogg’s Accounting Service, you would have to pore through every customer file until you found it. Now imagine finding the file if your customer folders were orga- nized (or indexed) alphabetically. When you sort or filter on a non-indexed field, Access will search every record until the correct record is found. Indexing a field in Access is conceptu- ally identical to alphabetizing the file system. Indexing a field makes Access create an organizational scheme for that field such that it can be found much more rapidly. Figure 1-10: Specify whether your data source comes with headings. Chapter 1 ■ Getting Excel Data into Access 15 Figure 1-11: Apply data types and indexing to your fields T I P You may wonder why you would not index all your fields. Wouldn’t that make your queries run faster? The answer is an emphatic no! Indexing is a good idea on fields you expect to filter or join to another table. Indexing is not a good idea for fields you expect to perform calculations on. You should also be aware that while indexing can improve the performance for some types of analysis, other types could actually be slowed by using indexed fields. The relevance and importance of indexing fields will become clearer as we discuss different Access query types in Chapter 2. The next screen allows you to select the primary key (see Figure 1-12). A pri- mary key is a data field that uniquely identifies each record in a data set. Each table in a properly designed relational database should contain information about one entity, and each record should be uniquely identified by one field. That one field is called the primary key. In this example, the Employee_Num- ber field contains unique numbers; one for each unique employee represented. Sometimes the Excel data you import will be in flat file format and will not have one field that uniquely identifies each record. In these cases, the Import Spreadsheet Wizard will default to assigning an Autonumber primary key for you. 16 Part I ■ Basic Integration Techniques Figure 1-12: Define which field will be your primary key. A WORD ON CREATING COMPOUND KEYS Sometimes a flat file will have two or more fields that together uniquely identify a record. In these cases you will need to create what is called a compound key. Take the table shown here in Figure 1-13, for example. This table contains both an invoice number and a product number. There are duplicate values for each field when looked at separately. A sales rep may have sold multiple products to a customer on the same invoice. By combining the invoice and product number, however, you can create a compound primary key that is truly unique for each record. Figure 1-13: You will often require a key on two fields to make a unique value. Chapter 1 ■ Getting Excel Data into Access 17 If you need a compound key, import your data without specifying a key in the Import Spreadsheet Wizard. Then when your table is created, view your table in the Design view. When in Design view, select the fields that together make up your compound key, right-click, and select the primary key icon from the drop-down menu. Close the table and save your changes. The last screen of the Import Spreadsheet Wizard asks to you name your new table (see Figure 1-14). By default, the name of your new table is the name of your imported worksheet, but you can change the name to suit your needs. At this point, you can click the Finish button to start the import. Figure 1-14: Name your imported table and click the Finish button. N OT E It’s important to note that naming your import table the same name as an existing table in your database causes Access to give you a warning that you are about to overwrite your existing table. Be careful that you do not inadvertently overwrite an existing table with a careless table name choice. After your data has been imported, you see a dialog box that asks whether you want to save your import steps (see Figure 1-15). This is a new feature in Access 2007, allowing you to save time when the same dataset must be rou- tinely imported. As you can see in Figure 1-15, clicking the Save import steps check box allows you to save your import steps as a named task that can be used whenever you need. To recall a saved import task, simply click the Saved Imports command button under the External Data tab in the Access ribbon. 18 Part I ■ Basic Integration Techniques Figure 1-15: You now have the option of saving your import steps. T I P Another quick way to create a new table in Access from Excel is to drag and drop between the two applications. Open Access and Excel and arrange the windows so you can see both applications. Now simply highlight the selected Excel range you want to import and drag it into Access. You’ve immediately created an Access table. Be aware that this action actually moves the data from Excel to Access. The data will no longer be in Excel! To copy the data instead of moving it, hold down the Ctrl key on your keyboard while you drag from Excel to Access. Linking an Excel Worksheet to Access Sometimes the Excel data you want to incorporate into Access is going to change frequently. Perhaps the Excel data you need is owned by someone else and is updated daily. Does it make sense to import that data into a new Access table every time it changes? What if you do not know when it changes, yet it is critical to have the most up-to-date information for your analysis? In these sit- uations it makes more sense to get your Excel data by linking a worksheet. Linking data is different from importing data in that Access references the linked data in its original location. Importing data brings a local copy of the information into the Access database. Any changes made to the local copy in Chapter 1 ■ Getting Excel Data into Access 19 Access do not affect the original spreadsheet. Likewise, any changes made to the original spreadsheet after importing are not reflected in the Access table. Conversely, a linked Excel sheet exists in real time. Changes made to the sheet in the original Excel file are reflected in Access upon refresh. However, you cannot make changes to the Excel data through Access. Linking is a one- way street of data flow. As with the prior example, start by selecting the External Data tab and then select the Import Excel icon. In the Get External Data dialog box, browse for the Location_Master.xlsx file. This time, select the option Link to the data source by creating a linked table (see Figure 1-16). Click the OK button to continue. This launches the Link Spreadsheet Wizard shown in Figure 1-17. You will notice it looks nearly identical to the Import Spreadsheet Wizard. As with the Import Spreadsheet Wizard, the idea is to go through each screen of the wiz- ard, answering the questions posed and clicking the Next button. The last step in the wizard gives you the option to name your linked table. Again, the default name is the worksheet name or named range. Click the Finish button to apply the link. N OT E When linking to a data source, you can’t specify data types, indexing, or primary keys. Therefore, you can’t see those selections in the Link Spreadsheet Wizard. Figure 1-16: To link to a data source, select the Link option. 20 Part I ■ Basic Integration Techniques Figure 1-17: The steps in this wizard are nearly identical to those of the Import Spreadsheet Wizard. Figure 1-18 illustrates the difference in the icons between imported tables and linked tables. Notice that tables linked to an Excel data source have an Excel icon. Earlier you learned that a linked Excel table incorporates changes from the Excel file to Access but does not allow changes from Access back to Excel. To test this, open the linked table in Access by double-clicking the linked Excel table icon. Next, try to change the data by replacing branch number 101313 with 999999. When you try to enter the first 9, you hear an alert. Look in the bottom-left corner of the screen, and you will see the warning “This Recordset is not updateable” (see Figure 1-19). Figure 1-18: A linked table has a different-looking icon than an imported table. Figure 1-19: You cannot update a linked Excel table through the Access interface. Chapter 1 ■ Getting Excel Data into Access 21 Now that you’ve proven that you cannot update the Excel spreadsheet through Access, test whether Access sees changes made to the source data. Close the Location_Master table in Access by clicking the X in the upper-right corner of the table window. Open Excel, locate the Location_Master worksheet and open it. Now try the same exercise of changing branch 101419 to 999999. Save and close the Excel file. Now open up the Access linked table Loca- tion_Master to verify that our change carried through (see Figure 1-20). N OT E You may be wondering why anyone would link to an Excel file when they can’t change the data in Access. Well, the primary utility of a linked table is to get the latest data from a source that changes often without having to import the data repeatedly. Imagine you have an Excel file updated nightly. If you were to use that file in your Access queries or reports, linking to that source would allow you to get the latest changes without importing the data every day. If the structure of the data source for your linked table changes, you will have to refresh your link in order to get those structural changes. For example, if you were to add a column to the Location_Master Excel file, you would not be able to see that change in Access until you refresh the link to the Loca- tion_Master Excel file. To do so, use the Linked Table Manager. The linked table manager can be found under the Database Tools tab in the Access ribbon. When you click the Linked Table Manager button, the dialog box shown in Figure 1-21 activates, displaying all the linked tables in the current database. In this case, you’ll see one linked table: the Location_Master table. Select the check box beside the linked table and click the OK button. Your data has been successfully refreshed! Figure 1-20: Updates to the linked Excel table carry through to Access. 22 Part I ■ Basic Integration Techniques IMPORTING OR LINKING TO NON-EXCEL DATA You may want to import and analyze non-Excel data and then send it to Excel after analysis in Access. One of the most common data types for import is text- delimited data. Delimited text is simply text where the individual fields in a record are separated by a specific character like a tab, comma, or space. Fortunately, Access recognizes delimited text and even allows you to choose the specific character that separates fields. To get delimited text into Access, simply choose Text file from the External Data ribbon and walk through the same process you would when importing or linking to an Excel file. Figure 1-21: View of the Linked Table Manager Appending an Excel Worksheet to an Existing Table The last topic on importing Excel data to Access is how to use the Append function in the Get External Data dialog box. When you append data to a table, you essentially add records to the end of the table. This is useful when you have a process where records for a specific table are added over time (for example, if new employees come into an organization and need to be added to the EmployeeMaster table). Select the External Data tab and click the import Excel icon. Browse for the file that contains the records you want to add. In the Get External Data dialog box, select the option Append a copy of the records to the table and specify the table to which you would like to append your new records. In Figure 1-22, you can see that new employee records from an Excel file called NewEmployees are appended to the EmployeeMaster table. Chapter 1 ■ Getting Excel Data into Access 23 Figure 1-22: Append data by choosing the append options in the Get External Data dialog box. Clicking the OK button activates the Import Spreadsheet Wizard. As with importing and linking data, the idea is to go through each screen of the wizard, answering the questions posed and clicking the Next button. When you get to the last screen, click the Finish button to trigger the append action. Potential Errors When Using the Append Import Wizard It’s important to note that you may encounter some potential errors when appending data. Unfortunately, Access is not very clear when it does not like some portion of the append process. The most likely consequence of an append error is simply not being able to get your data into Access. The wizard spits out an error and does not let you continue with the import. Let’s review some of the most common error messages, the underlying problem, and what is required to fix it. ■■ Type Conversion Failure: This error occurs when the data type of a value in the records you are trying to append does not match the data type of the field to which you are appending. For example, suppose you originally imported a transaction file and changed the default data type of the Invoice Number field to Number. Now suppose that invoice numbers in your organization start coming in as alphanumeric (such as INV20231). When you append additional data to your transaction table, you will receive an error because you are trying to put a text field into a field designated for numbers. 24 Part I ■ Basic Integration Techniques ■■ Key violations: Key violations occur when you try to append a field with duplicate values to a field designated as a primary key. A primary key is a data field that uniquely defines a record in a data set. In other words, a primary key cannot have duplicates. Access will not let you append a field that has duplicate data to a field designated as a pri- mary key. ■■ Lock violation: If the table you are trying to append to is open, Access will not allow you to append the new records until you close the table. Make sure the table you are appending to is closed before starting the Append Import Wizard. USING COMPACT AND REPAIR Access has a size limit of about 2 GB. When an Access database gets close to this limit, performance will degrade rapidly. Additionally, the risk of database corruption increases as well. Properly designed Access Database applications should rarely approach this size limit. I have used Access databases that perform tons of query operations on several million record transaction tables and have rarely approached this limit. The most common cause of approaching this size limit is from not doing proper maintenance to the database. When you delete a large table of data in Access, you may think you are automatically reducing the size of the Access file. In fact, you are not. Access does not automatically release the storage space associated with a deleted table. Let’s say you import a million row transaction table to your Access database only to realize that you forgot to import several relevant fields. Conscious of the size limits in Access, you delete the table and import another table with all the appropriate fields. Even though you have deleted the first table, Access still has not released the space and your file size has doubled. Another cause of this database bloat occurs when performing a series of action queries, making numerous intermediate tables for a final analysis. Even if those intermediate tables are deleted, Access is still allocating space for them. The solution to this problem is to routinely compact and repair your database. Press the Office File icon and select Manage, Compact and Repair Database (see Figure 1-23). Chapter 1 ■ Getting Excel Data into Access 25 Figure 1-23: Using the Compact and Repair Database Utility in Access How often you perform this operation really depends on how frequently you add and then delete tables from your database. The best practice is to compact and repair your Access database at least every time you open or close it. This action can be automated for you by selecting the file icon and then selecting the Access Options button at the bottom of the menu. This opens the Access Options dialog box. By selecting the Current Database menu item from the list on the left and checking the Compact on Close check box, you will ensure your database is compacted and repaired at least every time you close the application. Summary Getting your Excel data into Access is the first step in leveraging the powerful utilities and functionality of Access. Outside of manually entering data into your Access tables, there are three basic ways of getting Excel data into your Access processes: importing, linking, and appending. 26 Part I ■ Basic Integration Techniques Importing data allows you to create a table in Access that you can control and use to run queries, build reports, and perform any other Access-related task. Linking data creates a connection to your Excel file, allowing you to instantly see any changes made to your source file without having to take fur- ther action. The primary utility of a linked table is to get the latest data from a source that changes often, without having to import the data repeatedly. Appending data allows you to add records to the end of the table. This is use- ful when you have a process where the records for a specific table are added over time. Now that you understand the different ways of getting your data into Access, you can effectively use whichever one best suits your needs in a given situation. CHAPTER 2 Analyzing Excel Data with Access Queries The previous chapter discusses how to get data into Access. Now it’s time to do something with that data. Once you have your data stored in Access tables, you can turn your focus to one of the more useful features of Access: Queries. By definition, a query is a question. For the purposes of this chapter, it is a question about the data that is stored in tables. Although most Excel users have heard of Access queries, few have been able to relate to them. The pri- mary reason is that in Excel, the concept of querying data is a bit nebulous as it can take the form of different functionalities in Excel. That is to say, there is no such object called a query in Excel. Instead, you have things like formulas, AutoFilters and PivotTables. Consider this; in Excel, when you use AutoFilter, a VLookup formula, or Subtotals, you are essentially running queries against some set of data to achieve an answer Access queries revolve around the same concept. In this chapter, you will explore the world of Access queries, discovering the various ways you can create analyses from your data. Introduction to Access Queries When you are working with data, it is often preferable to work with smaller sets of data at a time. Although your tables may contain all the records per- taining to a particular entity, you may need to extract or evaluate only a subset 27
DMCA.com Protection Status Copyright by webtailieu.net