Fix For Data Control Error 3426

Fix For Data Control Error 3426

This code, which works fine under VB3, may generate runtime error 3426–“Theaction was canceled by an associated object”–in the 16-bit versionof VB4:

 Private Sub cmdUpdate_Click()	' Save contents of bound controls	' to underlying recordset	datCtl.Recordset.UpdateEnd Sub

The problem seems to occur because the 16-bit version of VB4, unlikeVB3, does not perform an implicit Edit method when the Data control movesto a new record. The solution is to check the record set’s EditMode andperform an explicit Edit method if necessary:

 Private Sub cmdUpdate_Click()	If datCtl.Recordset.EditMode = dbEditNone Then		datCtl.Recordset.Edit	End If	datCtl.Recordset.UpdateEnd Sub

Another workaround is to replace the Update method with the Data control’sUpdateRecord method, which is equivalent functionally to performing anEdit followed by an Update. The drawback is that UpdateRecord does notfire a Validate event, so don’t use it if you rely on that event to performdata validation.

See also  Essential Measures for Safeguarding Your Digital Data

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist