Corrupt Error Message with Attached Btreive Table --------------------------------------------------------------------- The information in this article applies to: - Microsoft Access version 1.0 --------------------------------------------------------------------- Summary: SYMPTOMS When you try to attach to a Btrieve table you receive the following error message: is corrupted or isn't a Microsoft Access database. CAUSE When Microsoft Access attaches to a Btrieve table, it compares the information in the DDF files with the information in the tablename.DAT file. The most common cause of the above error message is a difference in the information for the indexes. RESOLUTION The user will need to redefine these indexes in a manner that Microsoft Access will not return the above error message. The most common solution is to redefine the index to be the exact length of the field that it is based upon. More Information: Example #1: ----------- The tablename.DAT file is defined with three columns: Column name Field Length Index Length ------------------------------------------ Firstname 10 <= Combined length of Lastname 10 <= 20 characters Company 25 Index1 is defined with a length of 20 characters which combines the firstname and lastname fields. Resolution: This index would need to be redefined into one multiply segment index, each with a defined length of 10 characters. Example #2: ----------- The tablename.DAT file is defined with three columns: Column name Field Length Index Length ------------------------------------------ Firstname 10 4 characters Lastname 10 Company 25 Index2 is defined with a length of 4 characters which is shorter than the defined length of the firstname field. Resolution: This index would need to be redefined from 4 characters in length to 10 characters in length, matching the size of the firstname field. Example #3: ----------- The tablename.DAT file is defined with three columns: Column name Field Length Index Length ------------------------------------------ Firstname 10 12 characters Lastname 10 Company 25 Index3 is defined with a length of 12 characters which is slightly longer than the defined length of the firstname field. Resolution: This index would need to be redefined from 12 characters in length to 10 characters in length, matching the size of the firstname field. Example #4: ----------- The tablename.DAT file is defined with three columns: Column name Length -------------------- Firstname - 10 Lastname - 10 Company - 25 Index4 is defined on a numeric byte range and not defined on any fields in the table. Resolution: This index would need to be removed completely and then redefined on an existing field and that has the same defined length as the field it is based upon. These types of indexes are valid to the Btrieve file format. Xtrieve from Novell simply ignores this type of index. Microsoft Access interrupts these indexes as being invalid and returns the above error message. How does a user go about changing the index? The user has several options: 1. Ask the vendor that created the Btrieve files to change the indexes to match the length of the defined fields. 2. Redefine the indexes with Btrieve to match the length of the defimed fields. 3. Redefine the indexes with Xtrieve to match the length of the defined fields. 4. Use any third party utility that is available to modify the Btrieve indexes.