Link to home
Start Free TrialLog in
Avatar of SheaJeff
SheaJeffFlag for United States of America

asked on

Form automatically going into Edit mode right away

On my form, I have a UserName combo box that is the first field to receive the focus when the form opens.  The default value is set to "=UsersFormalName()" from the function below.

The problem is that the record goes right into Edit mode (the little pencil in the upper left corner) as soon as the form is opened or a "new" record is added.  Normally the mode would remain in "view" until user starts typing in a field (the little triangle in the upper left corner).

How can I stop the New record from going right into Edit mode but still have the UserName combo be the first field selected when the form is opened?  Ideally I would like the Edit to start when the user tabs away from the field or selects another name from the combo.

Public Function UsersFormalName()
     'DATABASE CONTAINS TABLE T_PEOPLE
     
On Error GoTo ErrorHandler_Err
     
     Dim db As Database
         Dim rst As DAO.Recordset
         Dim strSQL As String
         Set db = CurrentDb

strSQL = "SELECT tbl_People.PeopleName " & _
"FROM tbl_People " & _
"WHERE (((tbl_People.UserName)=fGetUserName()));"

      Set rst = db.OpenRecordset(strSQL)

      UsersFormalName = rst.Fields("PeopleName").Value 
     
Set rst = Nothing                   

'Error Handling-----------------
ErrorHandler_Err_Exit:
530      Exit Function
ErrorHandler_Err:
Select Case Err
Case 3059
Resume Next
'Case Else

'ErrorDetails = ErrorHandler(FormName:=FormNameConstant, ProcedureName:=ProcedureName, _
        ErrNumber:=Err.Number, ErrDescription:=Err.Description, ErrLine:=Erl)
End Select

End Function

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of peter57r
peter57r
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of SheaJeff

ASKER

I've added break/watch points to all of the form events, but still can't find what's causing it.
One thing that might help; if I have 2 or more records, and select the UserName field, then try to go to another record, the form goes right into Edit mode for the CURRENT record that I'm trying to move from.  If I select any other field, the form moves between records normally.

I do have this for the field, and it was working fine before I added the default value.
     Private Sub cmbo_UserName_GotFocus()
     Me.cmbo_UserName.Dropdown
     End Sub

On Enter and Exit events I use these functions to highlight the cell.  It's worked fine forever so I can't imagine it is interfering
     
Sub Highlight()
    With Me.ActiveControl
        .Properties("BackColor") = 9434879
     End With
End Sub
Sub Un_Highlight()
    Me.ActiveControl.Properties("BackColor") = 16777215
End Sub
As Peter eluded to ... if you have any code in the Form Current that sets a Control  Value, this will immediately make a record Dirty (ie in Edit mode).  Look for that.  Same would apply to the On Enter - On Got Focus event for a control first in the tab order, ... and you set a value .

mx
Peter, you were right.
I had an additional line on the OnExit event of the combo box besides the UnHighlight.

'Me.cmb_AcctNumber.Value = AcctIDdefault