When inserting records into a Microsoft Access database, immediately attempting to reselect them occasionally does not return all inserted records. This occurs even when the records are inserted and reselected on the same connection.
The problem described in this article affects the Microsoft Jet database engine's ability to locate data stored in the connection's cache. Jet examines changes stored in the connection's cache when it processes a query. Because of this problem, running a query on that same connection may not retrieve all of the newly inserted data that satisfy the query's search criteria immediately after adding new rows to your database.
Important Information:
To increase performance, Jet stores modifications in its cache before writing the changes to the file. As a result, modifications currently stored in the connection's cache are visible only on that connection. Other connections are unable to see these changes until Jet flushes them to the database.
NOTE: This behavior is normal and is not related to the problem described in this article.
↑ Back to the top
Internal to Jet, the Seek methods used to locate the inserted records are occasionally accessing uninitialized memory and picking up incorrect values. Based on these incorrect values, the attempt to locate the appropriate record fails.
↑ Back to the top
To resolve this problem, install the the latest Microsoft Jet 4.0 service pack. To download the latest Microsoft Jet 4.0 service pack, see the following article in the Microsoft Knowledge Base:
239114 How To: Obtain the Latest Service Pack for the Microsoft Jet 4.0 Database Engine
↑ Back to the top
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Microsoft Jet 4.0 Service Pack 5 (SP5).
↑ Back to the top