"Send Keys" Error

What is the best code to replace the "Send Keys" code error.
This seems to have something to do with the operating systems User Account Control (UAC). Turning off/disabling  UAC could be bad and I assume that disabling UAC is not a solution. Any other ideas anyone?

A user enters a wrong data type in a text field, and the "Before Update code verify the data and informs the user that wrong type of data was entered. Upon clicking the "ok" button of the msgbox dialog box, another error popup up.

Run-Time Error '70':
"Permission denied"

debug highlighted...
SendKeys Chr(27) & Chr(27)  

form this code....
' ******
Private Sub BldgDisttxt_BeforeUpdate(Cancel As Integer) '<====
Dim sError As String
Dim sMinValueCheck As String
Dim sMaxValueCheck As String
Dim bAllowFractions As Boolean
Dim bAllowX As Boolean

    sMinValueCheck = ">=0"
    sMaxValueCheck = "<=400"
    bAllowFractions = True
    bAllowX = False
    BldgDisttxtNewValue = VerifyValue(Nz(Me!BldgDisttxt.Value, ""), sError, sMinValueCheck, sMaxValueCheck, bAllowFractions, bAllowX)
    If BldgDisttxtNewValue = "" Then
        msgbox sError, vbInformation + vbOKOnly, "Invalid Value, press ESC twice to retry"
        SendKeys Chr(27) & Chr(27)                                  ' <==== Error Line
        Cancel = True
    End If
End Sub

I observed the "Send Keys" problem particularly when using Ms. Access 2003 in these operating systems:
Windows Vista, XP and Windows 2K - (if this would help).
Who is Participating?
MikeTooleConnect With a Mentor Commented:
Chr(27)  is the Escape key. So the code appears to be trying to do what the message advises the user to do. Leave it out altogether and just use Cancel = True to cancel the update and return focus to the control

If BldgDisttxtNewValue = "" Then
        msgbox sError, vbInformation + vbOKOnly, "Invalid Value, press ESC twice to retry"
        Cancel = True
End If
billcuteAuthor Commented:
SendKeys is an unsafe expression, blocked in sandbox mode.

What you are really trying to do is undo the control (first Esc) and then undo the record (second Esc). This corresponds to:

    BldgDisttxt.Undo   ' provided it's a bound control
    Me.Undo    ' provided it's a bound form

billcuteAuthor Commented:
Thanks for additional the info. However...

     BldgDisttxt.Undo   ' It's not bounded
    Me.Undo    ' Form not bounded

data is pasted unto main form via the following..
Forms!frmMain!txtBldgDist = Me.BldgDisttxt

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.