Microsoft KB Archive/138778

= PRB: Numeric Value Not Written to Table from Text Box =

Article ID: 138778

Article Last Modified on 2/10/2000

-

APPLIES TO


 * Microsoft Visual FoxPro 3.0 Standard Edition

-



This article was previously published under Q138778



SYMPTOMS
When you place the insertion point in the middle of numerical field on a form and press ENTER, the displayed value becomes the integer value of the digits to the left of the insertion point. For example, if the displayed field value is 12345.678, and you place the insertion point between the 2 and the 3 and press ENTER, the new displayed value becomes 12.000. However, unlike the behavior when directly editing a table in FoxPro 2.6, the value is not written to the table after you press the ENTER key.



WORKAROUND
A numerical field from a table added to a FoxPro for Windows, version 2.6 screen displays the truncated results and writes the changes to the table as soon as you move off of the field. In Visual FoxPro, if you manually change the field, the ControlSource updates and changes are written to the table. To force Visual FoxPro to behave as FoxPro 2.6 does, you must either use the REPLACE command or enable data buffering. Both methods are discussed below.

Using the REPLACE Command to Edit the Table Directly
 Add a text box to a form, and set its ControlSource property to a numerical field from a table.  In the LostFocus event of the text box, add these commands: REPLACE WITH This.Value This.Refresh 

Data buffering
 Set the BufferMode property of the form to either Optimistic or Pessimistic buffering. Add a text box to a form, and set its ControlSource property to a numerical field from a table.  In the LostFocus event of the text box, add these commands: REPLACE WITH This.Value =TABLEUPDATE(.T.) </ol>

<div class="status_section">

STATUS
Microsoft is researching this behavior and will post new information here in the Microsoft Knowledge Base as it becomes available.

<div class="moreinformation_section">

MORE INFORMATION
If you don't want to have Visual FoxPro write the changes to the table or display the changed value, place the following code in the LostFocus event of the textbox: This.Refresh

Steps to Reproduce Behavior
 Add a numeric field from a table to a form.</li> Set the ControlSource of the text box to a numeric field from a table.</li> Add a two command buttons, one for Skip and one for Prior. For an example showing how to add navigation buttons or a toolbar to a form, please see the following article in the Microsoft Knowledge Base:

130683 How to Create a General Purpose Reusable Navigation Toolbar

</li> Run the form.</li> Place the insertion point between two numbers in the field, and press ENTER.</li> The value displayed in the field will truncate to the integer value that lies to the left of the insertion point.</li> To see the display value revert to previous value, move back onto the field.</li> To see that the new value was not written to table, move the record pointer by clicking Skip and then clicking Prior.</li></ol>

Additional query words: VFoxWin

Keywords: KB138778

-

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

© Microsoft Corporation. All rights reserved.