Microsoft KB Archive/139155

= PRB: Current Edit Not Saved with TABLEUPDATE from Toolbar =

Article ID: 139155

Article Last Modified on 2/11/2000

-

APPLIES TO


 * Microsoft Visual FoxPro 3.0 Standard Edition

-



This article was previously published under Q139155



SYMPTOMS
Using the TABLEUPDATE command in a toolbar command button click event while row or table buffering is enabled does not save the current object's value.



CAUSE
When you click a toolbar command button, the focus never leaves the object on the form. Therefore, any changes that are made to that object are not sent to the buffer.



RESOLUTION
The following code sample is very generic and only handles edit and text boxes. The code must be modified for combo boxes and grids containing text boxes, edit boxes, and combo boxes. Note that with combo boxes, you will have to use the DisplayValue instead of Value.

Add the following code to the Click event of the Toolbar command button: *-- Code begins here IF ; INLIST(_screen.ActiveForm.ActiveControl.BaseClass,'Textbox','Editbox') REPLACE (_screen.ActiveForm.ActiveControl.ControlSource) ; WITH _screen.ActiveForm.ActiveControl.Value ENDIF =TABLEUPDATE _screen.ActiveForm.Refresh
 * -- Code ends here



STATUS
This behavior is by design.



MORE INFORMATION
When editing data in a text box, edit box, or combo list box, you must leave the object to force the data to be written to the buffer or table if you are using table or row buffering.

Steps to Reproduce Behavior
 Create a Toolbar Class. Add a command button to the toolbar.  In the click event of that command button, add this code: =TABLEUPDATE _Screen.ActiveForm.ActiveControl.Refresh  Save and close the toolbar.  Create the table. Type the following in the Command window: CREATE TABLE temp (myfield C(10)) INSERT INTO temp VALUES ("Hello") </li> Create the form:

<ol style="list-style-type: lower-alpha;">  Type the following command in the Command window: CREATE FORM ztest </li> Add the Temp table to the Data Environment (DE) of the form.</li> Set the BufferModeOverride of Cursor1 to 3, optimistic row buffering in the DE.</li> Click and drag myfield from the DE to the form.</li></ol> </li> Run the test.

<ol style="list-style-type: lower-alpha;"> Instantiate the toolbar with CREATEOBJECT.</li>  Type the following in the Command window: DO FORM ztest </li> Type TESTING in the field.</li></ol> </li> Click the Toolbar command button. Notice that the value has changed back to "Hello."</li></ol>

Additional query words: VFoxWin

Keywords: KB139155

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.