ACC2000: Unexpected Characters in Database Converted from Localized Version of Earlier Version of Access

ID: Q222446


The information in this article applies to:
  • Microsoft Access 2000

Moderate: Requires basic macro, coding, and interoperability skills.

This article applies only to a Microsoft Access database (.mdb).

IMPORTANT: This article contains information about editing the registry. Before you edit the registry, make sure you understand how to restore it if a problem occurs. For information about how to do this, view the "Restoring the Registry" Help topic in Regedit.exe or the "Restoring a Registry Key" Help topic in Regedt32.exe.

SYMPTOMS

If you convert an Access database created in an earlier version of Access that is also not the same language version, you may see unexpected characters, including extended characters, in the converted database.


CAUSE

When you convert an older database to Access 2000, Access uses the sort order to determine which code page to use for converting the data to Unicode. Access 2000 associates the General sort order with the Western European code page, so if non–Western European data is stored in the General sort order, the data is corrupted when Access 2000 converts it.

Because you are converting the database on an English version of the operating system, the collating order for the converted database is English, so it converts the text to ANSI Unicode characters rather than to Greek Unicode characters.

For example, a database created in Access 95 on the Greek version of Windows 95 is based on the Greek code page. When an Access 2000 user running the English version of Windows 95 opens the database, the operating system maps code points to the new code page, so some Greek characters might appear as accented European characters, question marks, open boxes, or other unintelligible characters.


RESOLUTION

How to Convert a Database from Localized Versions of Earlier versions of Access

Method 1: Using the Original Language Sort Order

If the older database is based on a non-English version of the operating system, and it is saved in the General sort order, you can recompact it in the original language sort order before converting it to Access 2000. To do so, follow these steps:
  1. Open the database in the original, localized version of Access.

    You must open the database on a computer running the same language version of the operating system as that used to create the database. Or you can open the database on a computer running Windows NT 4.0 or Windows 2000 with language support for the original sort order.


  2. Change the sort order to match the language of the operating system, and then recompact the database.

    NOTE: Steps for changing sort order and compacting the database are different with different versions of Access.


  3. Start Access 2000, but do not open the database.


  4. On the Tools menu, point to Database Utilities, point to Convert Database, and then click To Current Access Database Version.


  5. In the Database to Convert From dialog box, select the database that you want to convert, and then click Convert.


Method 2: Specify the Code Page for the General Sort Order

WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.

For information about how to edit the registry, view the "Changing Keys and Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe. Note that you should back up the registry before you edit it. If you are running Windows NT, you should also update your Emergency Repair Disk (ERD).

If you do not have the necessary language version of the operating system, or if the data in the older database is in a language that had no sort order in earlier versions of Access, you can still convert the database to Access 2000.

For example, databases in earlier versions of Access that are based on a Vietnamese, a Farsi, or a Baltic version of the operating system (Estonian, Latvian, or Lithuanian) default to the General sort order because earlier versions of Access did not support sort orders for those languages. To convert these databases, you must create a registry entry to prevent Access 2000 from corrupting the non–Western European data.

To convert non-Western European databases that use the General sort order:
  1. If you are converting an Access version 1.x or 2.0 database, browse to the following registry subkey:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Jet 2.x
    -or-

    If you are converting an Access 95 or 97 database, browse to the following registry subkey:


  2. HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Jet 3.x
  3. In the Jet 2.x or Jet 3.x subkey, create a new entry named ForceCP and set the value to ANSI to use the computer’s default code page. You can specify a different code page by setting the value to the code page number, such as 1257 for Windows Baltic Rim.


  4. Convert the database to Access 2000.


  5. Delete the ForceCP registry entry so that Access 2000 reverts to using the sort order of a database to determine the code page.



MORE INFORMATION

Steps to Reproduce Behavior

  1. On a clean computer (a computer that has a newly installed version of Windows, and no other applications) install the Greek version of Windows 98 and the Greek version of Access 97.


  2. In Control Panel, double-click Keyboard, and then click the Language tab.


  3. Highlight Gr to select it, and then click Set as Default.


  4. Click OK and close Control Panel.


  5. Use the Greek version of Access 97 to create a new database.


  6. In the new database, create a table with three text fields.


  7. View the table in Datasheet view.


  8. Create several records, typing Greek characters in all three fields.


  9. Close the database.


  10. Move the database to a computer running the U.S. English version of Windows 98 and the U.S. English version of Access 2000.


  11. On that computer, open Access.


  12. Open the database.


  13. Click Convert Database, and then click OK.


  14. Open the table that you created in step 5.


Note that the characters are not the same ones that you entered in the table in step 7. Many appear to be extended characters.


REFERENCES

For additional information about converting to and from other language versions of Access, please see the following article in the Microsoft Office Resource Kit at the following Microsoft Web address:

Sharing Access Databases Across Language Versions

Additional query words: prb

Keywords : kbdta
Version : WINDOWS:2000
Platform : WINDOWS
Issue type : kbprb


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