XL97: Run-Time Error 40009 When You Run DAO Macro

ID: Q172322


The information in this article applies to:
  • Microsoft Excel 97 for Windows


SYMPTOMS

If you run a Visual Basic for Applications macro that uses Data Access Objects (DAO) in Microsoft Excel 97, you may receive the following error message:

Run-time error '40009':
No current row.
This error message occurs when the macro attempts to copy the contents of a recordset into the active worksheet.


CAUSE

This problem occurs when one of the following conditions is true:

  • The recordset includes a field of type BIGINT.


  • -or-

  • You have installed Microsoft Visual Basic version 5.0 on the same computer.

    Visual Basic 5.0 replaces the Dao350.dll file that is included in Microsoft Office 97 or Excel 97 with a newer copy. Because this newer Dao350.dll file is not fully compatible with Excel 97, Visual Basic macros that use DAO may not work correctly.



RESOLUTION

To resolve this problem, obtain Microsoft Office 97 Service Release 2 (SR-2).

For additional information about SR-2, please see the following article in the Microsoft Knowledge Base:

Q151261 OFF97: How to Obtain and Install MS Office 97 SR-2
To work around this problem temporarily, use one of the following workarounds.

Method 1: Field of Type BIGINT Is Included in Recordset

If the recordset contains a field of type BIGINT, you must change the type of the field or exclude the field from the recordset, and then run the macro again.

Method 2: Microsoft Visual Basic 5.0 Is Installed on Your Computer

To work around this problem, remove or rename the Dao350.dll file that was installed by Microsoft Visual Basic 5.0, and install a new copy of the file that is included with Office 97 or Excel 97.

NOTE: Because there are several versions of Windows, the following steps may be different on your computer. If they are, please consult your product documentation to complete these steps.

To rename or remove the existing file, follow these steps.

  1. Quit all running programs.


  2. On the Start menu, point to Find, and then click Files Or Folders.


  3. In the Named box, type Dao350.dll. In the Look In box, click "(C:)". Select the Include Subfolders check box, and then click Find Now.

    You should find a copy of Dao350.dll in the following folder:
    
          C:\Program Files\Common Files\Microsoft Shared\DAO 


  4. Right-click the Dao350.dll file. On the shortcut menu, click Rename. Change the name of the file to xDao350.dll. Press ENTER.

    -or-

    Right-click the Dao350.dll file. On the shortcut menu, click Delete. Click Yes in the Confirm File Delete dialog box.


  5. Click Close.


After you rename or remove the file, install a new copy of Dao350.dll. To do this, use one of the following methods.

Method 1: Download the Revised Dao350.dll file
A revised Dao350.dll file is available. This file is fully compatible with Microsoft Visual Basic for Applications macros that use DAO and is not replaced by Microsoft Visual Basic version 5.0.

For additional information about this utility, please see the following article in the Microsoft Knowledge Base:
Q182596 XL97: Revised Dao350.dll File for "No current row" Error
Method 2: Run Setup Again
Run the Microsoft Office 97 or Microsoft Excel 97 Setup program and click Reinstall. The Setup program reinstalls all missing files, including the Dao350.dll file. When the Setup program is finished, open Excel 97 and verify that the macros that use DAO work correctly.
Method 3: Replace the Dao350.dll File
Copy the Dao350.dll file from your Office 97 or Excel 97 compact disc (CD) to the correct folder on your hard disk. To do this, follow these steps:

  1. Insert the Office 97 or Excel 97 CD into the CD-ROM drive.


  2. Using Windows Explorer, open the following folder on the CD drive
    
          <R>:\OS\MSAPPS\DAO 
    where <R>: is the drive letter for the CD-ROM drive.


  3. If Dao350.dll is not visible in Windows Explorer, follow these steps:

    1. On the View menu, click Options. Click the View tab.


    2. Click to select Show All Files.


    3. Click OK.




  4. Right-click the Dao350.dll file. On the shortcut menu, click Copy.


  5. Using Windows Explorer, open the following folder on your hard disk:
    
          C:\Program Files\Common Files\Microsoft Shared\DAO 


  6. On the Edit menu, click Paste.


After Windows Explorer copies Dao350.dll from the CD to the hard disk, open Excel 97 and make sure that the macros that use DAO work correctly.

NOTE: If you reinstall Microsoft Visual Basic 5.0, the Dao350.dll file is replaced again, and you need to perform these steps again. However, if you have copied the revised Dao350.dll file that is available in the Microsoft Software Library, the file is not replaced again.


STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. This problem was corrected in Microsoft Office 97 Service Release 2 (SR-2).


MORE INFORMATION

Both Microsoft Excel 97 and Microsoft Visual Basic 5.0 both include copies of the Dao350.dll file. The version numbers of these files are listed in the following table.


   Product                      Version of Dao350.dll
   --------------------------------------------------
   Excel 97 or Office 97        3.50.3428.0
   Visual Basic 5.0             3.50.3602.0 
When you install Visual Basic 5.0, the version number of its Dao350.dll file is later than the version of the file that is installed with Excel 97; therefore it replaces the Dao350.dll file that is included in Excel 97. If you reinstall Excel 97 or Office 97, the earlier Dao350.dll file does not replace the later Dao350.dll file. This is why you cannot correct the problem that is described in this article by simply reinstalling Excel 97 or Office 97.

Additional query words: XL97 copyfromrecordset createworkspace fields openrecordset openconnection

Keywords : kbprg kbsetup kbdta xldao KbVBA
Version : WINDOWS:
Platform : WINDOWS
Issue type : kbbug


Last Reviewed: November 4, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.