Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

ACC2000: Using the AddNew Method with RecordsetClone Moves Form to New Record


View products that this article applies to.

This article was previously published under Q241025
Advanced: Requires expert coding, interoperability, and multiuser skills.

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

↑ Back to the top


Symptoms

When you use the AddNew method on a recordset object variable created from the RecordsetClone property of a form, the form incorrectly moves to a new record.

↑ Back to the top


Resolution

To resolve this problem, obtain Microsoft Office 2000 Service Release 1/1a (SR-1/SR-1a).

To obtain SR-1/SR-1a, click the article number below to view the article in the Microsoft Knowledge Base:
245025� OFF2000: How to Obtain and Install Microsoft Office 2000 Service Release 1/1a (SR-1/SR-1a)
To temporarily work around this problem, use the Clone method to create a copy of the Recordset property of the form, and then manipulate the copy of the recordset. To use the Clone method with the Recordset property of the form, follow these steps.

CAUTION: If you follow the steps in this example, you modify the sample database Northwind.mdb. You may want to back up the Northwind.mdb file and follow these steps on a copy of the database.

  1. Open the sample database Northwind.mdb.
  2. Open the Customers form in Design view.
  3. Add a command button to the form with the following properties:
       Command button
       ---------------------------
       Name: Command1
       Caption: AddNew
       OnClick: [Event Procedure]
    					
  4. Set the OnClick property of the command button to the following event procedure:
    Private Sub Command1_Click()
       Dim rs As DAO.Recordset
       Set rs = Me.Recordset.Clone
       rs.AddNew
       rs!CustomerID = "AAAAA"
       rs!CompanyName = "AAAAA Company"
       rs.Update
    End Sub
    					
  5. Save the form and close it.
  6. Open the Customers form in Form view.
  7. Click the command button.
Note that the record is added to the clone of the recordset of the form without affecting the form's current position. To actually see the record, you must requery the form, or close and reopen it.

↑ Back to the top


Status

Microsoft has confirmed that this is a problem in Microsoft Access 2000. This problem was corrected in Microsoft Office 2000 SR-1/SR-1a.

↑ Back to the top


More information

The RecordsetClone property provides a copy, or a clone, of the underlying recordset of the form. The recordset provided by the RecordsetClone property is equivalent to opening a recordset on a table or query, and then using the Clone method to create a copy of that recordset.

Many developers use the RecordsetClone property to move through or to operate on the records of a form, independent of the form itself. For example, you can use the RecordsetClone property when you want to use a method, such as the DAO Find method, that you cannot use with forms.

Microsoft Access 2000 has a new Recordset property that gives developers access to the actual recordset that a form uses. In earlier versions of Access, the RecordsetClone property is available, but it only allows access to a copy of the recordset of a form. By using the new Recordset property, you can use the Clone method to create a copy of the recordset to emulate the behavior of the RecordsetClone property.

Steps to Reproduce Behavior

  1. Follow steps 1 through 3 in the "Resolution" section earlier in this article.
  2. Set the OnClick property of the command button to the following event procedure:
    Private Sub Command1_Click()
       Dim rs As DAO.Recordset
       Set rs = Me.RecordsetClone
       rs.AddNew
       rs!CustomerID = "AAAAA"
       rs!CompanyName = "AAAAA Company"
       rs.Update
    End Sub
    					
  3. Save the form and close it.
  4. Open the Customers form in Form view.
  5. Click the command button.
Note that the form incorrectly moves to a new record and displays the values of the newly added record.

↑ Back to the top


Keywords: KB241025, kbpending, kbbug

↑ Back to the top

Article Info
Article ID : 241025
Revision : 1
Created on : 11/25/2002
Published on : 11/25/2002
Exists online : False
Views : 320