Microsoft KB Archive/165830

= ACC97: Problems Adding Records to Replicated Database Using ASP =

Article ID: 165830

Article Last Modified on 1/19/2007

-

APPLIES TO


 * Microsoft Access 97 Standard Edition

-



This article was previously published under Q165830



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



SYMPTOMS
If you export to ASP format a form based on a table in a replicated database, you cannot add new records using the ASP form.

If you look at an ODBC trace file, you see the error message:

[Microsoft][ODBC Microsoft Access 97 Driver]

You cannot modify the replication system object 's_Lineage'



CAUSE
The Microsoft Access 97 ODBC driver attempts to set values for the replication system columns, s_Generation, s_GUID and s_Lineage; Microsoft Access also adds one replication system column for each OLE Object field in your table. Microsoft Access does not allow you to set the values in those fields, so inserting the record fails.



RESOLUTION
Instead of using a table name in the RecordSource property of the form you are exporting to ASP format, set the RecordSource to the name of a Select query that contains all the fields in your table except the replication system columns.



STATUS
Microsoft has confirmed this to be a problem in Microsoft Access 97. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.



MORE INFORMATION
When you export a form to ASP format, the ASP file contains a SQL select statement that selects all the fields in the table. For example, if you base a form on the Shippers table, the SQL statement in the ASP file is:

  SELECT * from Shippers

This SQL statement selects all fields in the table, including the replication system columns.

When you base your form on a query that contains only the fields you want to update, the SQL statement in the ASP file names each field individually. For example:

  SELECT Shippers.ShipperID, Shippers.CompanyName, Shippers.Phone FROM Shippers

This SQL statement avoids the replication system columns in the table.

