Solved

form - fields don't refresh

Posted on 2013-10-31
6
334 Views
Last Modified: 2013-10-31
Dear experts -
I have a button, when it's pressed it does a number of calculations and updates a number of fields on the form. These fields are all bound. (It updates them to allowable values, most of them are text fields.)
The button is not saving the record - the user still has to manually adjust the record.
However, after hitting the button, the fields don't visually refresh - however, the values are correctly updated, since when i put the cursor in any of the fields it then shows the correct, updated value.
I don't think I want to requery the form, since that would restore values to the last-saved condition; I tried form.refresh, but this is causing the record to save first, which I don't want.
any ideas?
Thanks -
0
Comment
Question by:terpsichore
  • 4
  • 2
6 Comments
 
LVL 57
ID: 39613810
Issue a Me.Repaint.

Jim.
0
 

Author Comment

by:terpsichore
ID: 39613833
that doesn't work for some reason
0
 
LVL 57

Accepted Solution

by:
Jim Dettman (Microsoft MVP/ EE MVE) earned 500 total points
ID: 39613848
Need more detail on the setup and what your doing.   You've covered all three possibilities already:

Repaint - Forces a repaint and re-calculate of all controls based on existing data.
Refresh - Gets fresh data for the existing records.
Requery - Dumps all records and gets a new recordset - This picks up new records where a refresh will not.

Jim.
0
Back Up Your Microsoft Windows Server®

Back up all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 

Author Comment

by:terpsichore
ID: 39613864
1. the form is a simple form based on a single table.
2. I have a 'populate' button, with the code pasted below which fires on the Click event of the button. This all executes correctly, and exits the procedure with the right values for each of those controls.
3. As I said above, when I click on an individual control, it appears with the new, updated value.

Thanks -

Private Sub cmdPopulate_Click()
'If Me.chkPTDifferentRemitAddress = True this button is disabled


If MsgBox("You are about to populate ALL PT fields based on the current data - are you sure?" & vbCrLf & vbCrLf & "(You will be able to manually edit data before saving; you can also re-edit the PT data at any time before an export)." & vbCrLf & vbCrLf & "NOTE: the program will SKIP any fields that exceed the target field length - you will need to edit these manually.", vbYesNo) = vbNo Then
    Exit Sub
End If


'populate PTvendorname
If Me.txtlen_companyname > 0 Then
    If Me.txtlen_companyname <= Me.txtLimit_PTVendorName Then
        Me.PTVendorName = Me.txtCompanyName
    End If
Else
    If Me.txtlen_fullname > 0 And Me.txtlen_fullname <= Me.txtLimit_PTVendorName Then
        Me.PTVendorName = Me.txtForename & " " & Me.txtSurname
    End If
End If

'populate PTcontact
If Me.txtlen_companyname = 0 Then
    'do not populate! name was already used to populate ptvendorname
Else
    If Me.txtlen_fullname > 0 And Me.txtlen_fullname <= Me.txtLimit_PTContact Then
        Me.PTContact = Me.txtForename & " " & Me.txtSurname
    End If
End If

'populate PTaddress1
If Me.txtlen_address1 > 0 And Me.txtlen_address1 <= Me.txtLimit_PTAddress1 Then
    Me.PTAddress1 = Me.txtAddress1
End If

'populate PTaddress2
If Me.txtlen_address2 > 0 And Me.txtlen_address2 <= Me.txtLimit_PTAddress2 Then
    Me.PTAddress2 = Me.txtAddress2
End If

'populate PTcity
If Me.txtlen_city > 0 And Me.txtlen_city <= Me.txtLimit_PTCity Then
    Me.PTCity = Me.txtCity
End If

'populate PTstate
If Me.txtlen_state > 0 And Me.txtlen_state <= Me.txtLimit_PTSpecialState Then
    Me.PTSpecialState = Me.txtState
End If

'populate PTPostalCode
If Me.txtlen_postalcode > 0 And Me.txtlen_postalcode <= Me.txtLimit_PTPostalCode Then
    Me.PTPostalCode = Me.txtPostalCode
End If

'populate PTCountry_ID
Me.cboPTCountry_ID = Me.cboCountry_ID

Me.Form.Repaint


End Sub

Open in new window

0
 

Author Comment

by:terpsichore
ID: 39613919
I've requested that this question be closed as follows:

Accepted answer: 0 points for terpsichore's comment #a39613833

for the following reason:

actually - your repaint solution worked. I realize the problem was (stupidly) I was updated the field values and not the text fields. thank you!
0
 

Author Closing Comment

by:terpsichore
ID: 39613920
sorry - i meant to choose Jim's response here. This ended up being the solution.
0

Featured Post

Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Regardless of which version on MS Access you are using, one of the harder data-entry forms to create is one where most data from previous entries needs to be appended to new records, especially when there are numerous fields and records involved.  W…
Experts-Exchange is a great place to come for help with solutions for your database issues, and many problems are resolved within minutes of being posted.  Others take a little more time and effort and often providing a sample database is very helpf…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

829 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question