Solved

Access 2007 vba function runtime error 438.  Object does not support this property or method

Posted on 2010-08-31
4
1,366 Views
Last Modified: 2013-11-28
In the attached code, I making sure the user has entered data in each box.  The function is called from a save and exit function.  It all works except the section for Operator.   If the Operator box is empty, the message box is displayed as planned.  But then it crashes with the error message.

Microsoft Visual Basic
Runtime Error  '438'
Object does not support this property or method

When I select Debug it points to the line of code:
Me!Operator.SetFocus

Operator is the correct control source.

What am I looking for?
Thanks,
Brooks
Private Function CheckDataBeforeSaveAndExit() As Boolean
    If Me.Etch_Lot = "Select Etch Lot" Or IsNull(Me.Etch_Lot) Then
            MsgBox "Please select an etch lot number from the list."
            CheckDataBeforeSaveAndExit = False
            Me!Etch_Lot.SetFocus
    ElseIf IsNull(Me.Start_Qty) Then
            MsgBox "Please enter Start Quantity."
            CheckDataBeforeSaveAndExit = False
            Me!Start_Qty.SetFocus
    ElseIf IsNull(Me.End_Qty) Then
            MsgBox "Please enter End Quantity."
            CheckDataBeforeSaveAndExit = False
            Me!End_Qty.SetFocus
    ElseIf IsNull(Me.Furnace) Then
            MsgBox "Please select a furnace."
            Me!Frame39.SetFocus
            CheckDataBeforeSaveAndExit = False
    ElseIf IsNull(Me.Operator) Then
            MsgBox "Please select operator."
            Me!Operator.SetFocus
            CheckDataBeforeSaveAndExit = False
    Else
            CheckDataBeforeSaveAndExit = True
    End If

Open in new window

0
Comment
Question by:gbnorton
  • 2
4 Comments
 
LVL 74

Accepted Solution

by:
Jeffrey Coachman earned 300 total points
ID: 33570868
This is probably due to you keeping the default Control Names..
Please change the control names to follow a standard naming convention: (http://www.xoc.net/standards/default.asp)

The issue with leaving the default names is that the Control name is the same as the filed name.
While a control will have a .SETFOCUs property, a Filed will not.
(resulting in your error)

Note after changing all the control names:
Save the Form/Report.
Change the code to reflect the new names
Compile the code (In the VBA Editor click: Debug-->Compile)
The run the Compact/Repair utility, then retest..

;-)

JeffCoachman
0
 
LVL 14

Assisted Solution

by:pteranodon72
pteranodon72 earned 200 total points
ID: 33570885
It looks like some of the controls on your form have the same name as their bound field (like Etch_Lot) and others are not named like the bound field (Frame39 is bound to field Furnace, it appears.)

If there is no Control on the form named Operator,  Me!Operator resolves to the Operator *Field*, which cannot have events attached.

Operator sounds like a reserved word, so I would rename the control to fraOperator or cboOperator, etc. in the Properties->Other tab. Keep the Control Source as Operator (as shown in the Data tab). Then use Me!Operator to refer to the value of the field and Me!cboOperator.SetFocus to refer to the control.

HTH,
pT72
0
 

Author Closing Comment

by:gbnorton
ID: 33571291
I don't know if who's the quickest matters.  You both gave excellent responses.  Jeff was a little quicker...
0
 
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 33572556
I have no problem with the split.

pteranodon72 gave an explanation for another technical viewpoint, which is always helpful.

;-)

JeffCoachman
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

When you are entering numbers in a speadsheet, and don't remember what 6×7 is, you just type “=6*7" instead. It works in every cell! This is not so in Access. To enter the elusive 42 in a text box, you have to find a calculator, and then copy the re…
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…
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…
Using Microsoft Access, learn some simple rules for how to construct tables in a relational database. Split up all multi-value fields into single values: Split up fields that belong to other things into separate tables: Make sure that all record…

808 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