Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Getting error on CurrentDb.Execute ("UPDATE statement

Posted on 2016-11-09
15
Medium Priority
?
88 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 49

Expert Comment

by:Dale Fye
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 49

Assisted Solution

by:Dale Fye
Dale Fye earned 500 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
Visualize your virtual and backup environments

Create well-organized and polished visualizations of your virtual and backup environments when planning VMware vSphere, Microsoft Hyper-V or Veeam deployments. It helps you to gain better visibility and valuable business insights.

 
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 58

Assisted Solution

by:Jim Dettman (Microsoft MVP/ EE MVE)
Jim Dettman (Microsoft MVP/ EE MVE) earned 500 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 1000 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

Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

Question has a verified solution.

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

Traditionally, the method to display pictures in Access forms and reports is to first download them from URLs to a folder, record the path in a table and then let the form or report pull the pictures from that folder. But why not let Windows retr…
There are times when I have encountered the need to decompress a response from a PHP request. This is how it's done, but you must have control of the request and you can set the Accept-Encoding header.
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…
This lesson discusses how to use a Mainform + Subforms in Microsoft Access to find and enter data for payments on orders. The sample data comes from a custom shop that builds and sells movable storage structures that are delivered to your property. …

971 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