Microsoft KB Archive/208512

= ACC2000: Imported Excel Spreadsheet May Have Blank Columns =

Article ID: 208512

Article Last Modified on 6/30/2004

-

APPLIES TO


 * Microsoft Access 2000 Standard Edition

-



This article was previously published under Q208512



Novice: Requires knowledge of the user interface on single-user computers.

This article applies to a Microsoft Access database (.mdb) and to a Microsoft Access project (.adp).



SYMPTOMS
When you import a Microsoft Excel spreadsheet whose cell table goes beyond the last cell that actually contains data, you may get blank columns in the Microsoft Access table. This behavior occurs with the TransferSpreadsheet macro and the Import Menu commands.

When you use a TransferSpreadsheet macro action or the TransferSpreadsheet method in Visual Basic for Applications to append data to an existing table from a spreadsheet file, you may receive an error message similar to the following:

Field 'F3' doesn't exist in destination table.

Microsoft Access was unable to append it.

The field specified in the error message may vary.



CAUSE
Excel keeps track of all the used cells on a worksheet by using an activecell table. In some cases, the last cell of that table may refer to a cell outside of the area of the worksheet that is actually being used. When imported into Microsoft Access, all cells of the activecell table are imported; this may result in blank fields.



RESOLUTION
To avoid the extra columns when you import an Excel spreadsheet, use one of the following methods:  Open the table in Design view and delete the extra columns. Use Excel to reset the last cell.For additional information about resetting the last cell, click the article number below to view the article in the Microsoft Knowledge Base:

244435 XL2000: Resetting the Last Cell Fixes Memory/Printing Problems

 Use the TransferSpreadsheet macro action and set the Range argument to the actual range of cells to be imported.



Steps to Reproduce Behavior
 Create a folder (directory) on drive C and name it Examples.</li> Start Microsoft Excel.</li> If a default blank workbook does not appear, on the File menu, click New, click Workbook, and then click OK.</li>  Type the following information in Sheet1: <pre class="fixed_text">  A1: Sue      B1: 10     C1:  (enter a space in this cell) A2: Tom     B2: 20 A3: Jill    B3: 30 A4: Tim     B4: 40 </li> Save the workbook to the Examples folder as Test.xls, and then close it.</li> Start Microsoft Access and open a new blank database.</li>  Create the following macro: <pre class="fixed_text">  Action: TransferSpreadsheet

Action Arguments Transfer Type:   Import Spreadsheet Type: Microsoft Excel 8-9 (or the corresponding version                     on your system) Table Name:      New File Name:       C:\Examples\Test.xls Has Field Names: No                    </li> Save the macro as XLImport, and then close it.</li> Run the XLImport macro.</li> Open the New table.

Note that there are three fields (F1, F2, and F3), and that the third field is blank.</li></ol>

<div class="references_section">