Solved

Getting error on CurrentDb.Execute ("UPDATE statement

Posted on 2016-11-09
15
51 Views
Last Modified: 2016-11-17
I'm trying to use CurrentDB.Execute for an "UPDATE statement.  I'm tripping on the dbFailOnError.  How do I find out what error I'm getting?

Judith
0
Comment
Question by:JudithARyan
  • 7
  • 5
  • 2
  • +1
15 Comments
 
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
ID: 41881041
you need to include an error handler routine and tell Access to use that error handler if an error is encountered.  Generally a procedure might look something like:
Private Sub cmd_Update_Click()

    On Error goto ProcError

    strSQL = "UPDATE yourTable SET [SomeNumberField] = " & me.txtNewValue _
           & " WHERE [SomeOtherField] = " & me.OtherValue
    currentdb.execute strsql, dbfailonerror

ProcExit:
    Exit Sub

ProcError:
    msgbox err.number & vbcrlf & err.description, , "cmd_Update_Click"
    debug.print "cmd_Update_Click", err.number, err.description

End Sub

Open in new window

0
 

Author Comment

by:JudithARyan
ID: 41881056
If I'm using ProcError, why do I need dbFailOnError ?

Judith
0
 
LVL 47

Assisted Solution

by:Dale Fye (Access MVP)
Dale Fye (Access MVP) earned 125 total points
ID: 41881071
because without dbFailOnError, the Execute command will not raise an error if an error is encountered.  You must use the dbFailOnError if you want to be able to figure out what the error was, and present a meaningful message to the user.  The example I gave you is the simplest form of error handler.  I normally have a series of If statements in mine, something like:
    'Other code here
    '...

ProcError:
    'the following error numbers are made up
    If err.Number = 1234 Then
        msgbox "you failed to enter ... please try again"
        resume procExit
    elseif err.number = 321 then
        msgbox "Some other meaningful message"
        Resume Next  'you might want to simply continue processing after some errors
    elseif err.number = 987 Then
        'you might want to set some value and try the statement that originally raised the error
        me.txt_SomeValue = 0
        Resume
    Else
        msgbox err.number & vbcrlf & err.description, , "cmd_Update_Click"
        debug.print "cmd_Update_Click", err.number, err.description
        Resume ProcExit
    End If

End Sub

Open in new window

0
Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

 
LVL 75
ID: 41881251
Can you post the SQL of the Update statement or a screen shot from the query grid ?
0
 

Author Comment

by:JudithARyan
ID: 41888307
Sorry I haven't responded, I got distracted by other work.  

I did try your code, Dale, and got an error #0.  When I tried to figure out the problem, my changes led to a problem with my combo box that I'm have to dig out of.  Let me work on this and I'll send you a sample of the code and data.

Judith
0
 

Author Comment

by:JudithARyan
ID: 41888354
I've gotten myself in a real mess.  The form I'm working on is called by an autoexec module.  So when it gets an error it hangs and I can't get back into the program to do anything.

Is there a Function Key that will help me break into this problem?

Judith
0
 
LVL 57

Assisted Solution

by:Jim Dettman (Microsoft MVP/ EE MVE)
Jim Dettman (Microsoft MVP/ EE MVE) earned 125 total points
ID: 41888382
Hold down the shift key when you open the DB and the autoexec won't fire.

Jim.
0
 

Author Comment

by:JudithARyan
ID: 41888518
I'm attaching a file with images about my form.  Hopefully you can read it.  It's in PDF.

JudithLogonFormInfo.pdf
0
 
LVL 75
ID: 41888573
OK ... I'm confused now as to what the actual problem is at this point?
With CurrentDB.Execute ?
Or there is a problem with a Form ?
0
 

Author Comment

by:JudithARyan
ID: 41888582
After getting the response from Dale, I've come to realize that it is probable a form problem with the only combo box on it.  Sorry for the confusion!

Should I close this question and open a different one?

Judith
0
 
LVL 75
ID: 41888595
Well ... what is the specific problem now?
Also ... in the last screen shot - in the Row Source property ... there is some kind of character (') just before the word SELECT .... ???
0
 

Author Comment

by:JudithARyan
ID: 41888748
The SELECT statement is started & ended with "s.

When I open the form, I get the following error message:

The record source '~sq_cfrmSysLogon2013~sq_cContactID' specified on this form or report does not exist.

As you can see by my record source query results, it does!  

?????

Judith
0
 
LVL 75
ID: 41888825
I don't think you want "" surround the SQL stmt ...
And double check if that SQL will run alone in the query grid ?
0
 

Author Comment

by:JudithARyan
ID: 41890100
Here's the data table and the record source query results for the form.

Hope this helps.

JudithLogonFormData.pdf
0
 
LVL 75

Accepted Solution

by:
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform) earned 250 total points
ID: 41890689
This
'~sq_cfrmSysLogon2013~sq_cContactID'

is usually the type of Name your would find in MSysObjects for an SQL Statement used as a Form/Report Record Source or the Row Source for a combo box.
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

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

In a multiple monitor setup, if you don't want to use AutoCenter to position your popup forms, you have a problem: where will they appear?  Sometimes you may have an additional problem: where the devil did they go?  If you last had a popup form open…
Modern/Metro styled message box and input box that directly can replace MsgBox() and InputBox()in Microsoft Access 2013 and later. Also included is a preconfigured error box to be used in error handling.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
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 …

840 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