Solved

Why am I getting "object doesn't support this property or method (438)"

Posted on 2011-09-07
19
504 Views
Last Modified: 2012-05-12
I am getting the following error in my Access 2010 code:

object doesn't support this property or method (438)

Here is my code:

Public Function TestSamples() As Boolean
    Pass = True
   
    On Error GoTo Err_TestSamples
   
    Dim Clnt As New clsClient
    Clnt.Clear
    LoadClientTestData (Clnt)  <---Get error message on this line.

Private Sub LoadClientTestData(ByRef Clnt As clsClient)  <-- This is the subroutine being called.  Both sets of code are in the same module.

clsClient is a Class Module created in Access.

If I avoid the subroutine and put the code that the routine was supposed to do below this point, the class works as expected.  I want to be able to put this code in a subroutine so it can be called from multiple sources.

I have searched on the error but have only found the error related to form controls.

Matt
0
Comment
Question by:excellis
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 6
  • 3
  • +3
19 Comments
 
LVL 75
ID: 36497523
Clnt is a function in Access   CInt()

Try using a different variable name.

    Dim CXlnt As New clsClient
    CXlnt.Clear
    LoadClientTestData (CXlnt)

mx
0
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 36497562
What does the definition of LoadClientTestData look like?
0
 

Author Comment

by:excellis
ID: 36497568
My variable is CLNT as in "Client".  It is not CINT as in Convert to Integer.

Matt
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:excellis
ID: 36497587
Kaufmed,

This was included in the original post:

"Private Sub LoadClientTestData(ByRef Clnt As clsClient)  <-- This is the subroutine being called.  Both sets of code are in the same module."

Is this what you were asking me for?

Matt
0
 
LVL 75
ID: 36497593
Clnt - yours
CInt - mine ....

well the Looked the same.  Both above have capital L's  :-)

mx

0
 
LVL 75
ID: 36497624
I've never tried to pass a Class object variable before.  

What happens if you change

Private Sub LoadClientTestData(ByRef Clnt As clsClient)  

to

Private Sub LoadClientTestData(ByRef Clnt As Object)  
0
 

Author Comment

by:excellis
ID: 36497660
DatabaseMX,

I get the same error.

Matt
0
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 36497663
Is this what you were asking me for?
No. I was looking for something along the lines of:

Private Sub LoadClientTestData(ByRef Clnt As clsClient)
    ' Relevant code lines here
End Sub

Open in new window


My thought is that you have a line inside the class that is actually throwing the error, but it's being "flagged" as being on the line you experience. Just a guess, though  : \
0
 
LVL 75
ID: 36497664
I'm not sure you can pass a Class as an argument ... are you ?

mx
0
 
LVL 75
ID: 36497703
How about ..


    LoadClientTestData (Clnt)

Private Sub LoadClientTestData(ByRef ABC As clsClient)  
0
 

Author Comment

by:excellis
ID: 36497721
Kaufmed,

here is the subroutine - LoadClientTestData:

Private Sub LoadClientTestData(ByRef Clnt As clsClient)

    Clnt.Clear
   
    'Data - Default = ""
    Clnt.CompanyName = "Excellis, Inc."
    Clnt.Addr_1 = "30856 Groesbeck Highway"
    Clnt.Addr_2 = "Suite A"
    Clnt.SuiteNo = "A"
    Clnt.City = "Roseville"
    Clnt.State = "MI"
    Clnt.Zip = "48066"
    Clnt.Landline = "586.555.1212"
    Clnt.MobilePhone = "586.555.1212"
    Clnt.FaxNo = "888.555.1212"
    Clnt.WebAddress_1 = "Excellis.com"
    Clnt.WebAddress_2 = ""
    Clnt.EmailAddress_1 = "info@excellis.com"
    Clnt.EmailAddress_2 = ""
    Clnt.CompanyTagline = "Your data matters to us along with a check."
    Clnt.Personalization_1 = ""
    Clnt.Personalization_2 = ""
    Clnt.CompanyAlias = ""

End Sub

DatabaseMX:

I thought all Objects were Classes.  So I am assuming that a Class Module could be passed as a parameter.

Matt
0
 
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
ID: 36497766
Where did you assign all of the properties (fields) of the class.  You have to define these somewhere, otherwise you will get an error on Clint.CompanyName
0
 
LVL 51

Accepted Solution

by:
Huseyin KAHRAMAN earned 500 total points
ID: 36497770
did you try

LoadClientTestData (Clnt)
-->
LoadClientTestData Clnt
0
 

Author Comment

by:excellis
ID: 36497823
HainKurt,

Your solution worked.  I don't know why but it did.

Change LoadClientTestData (Clnt)
-->
LoadClientTestData Clnt

Thank you,
Matt
0
 

Author Closing Comment

by:excellis
ID: 36497826
The solution works but I do not understand why.
0
 
LVL 57
ID: 36497861

<<My variable is CLNT as in "Client".  It is not CINT as in Convert to Integer.>>

  That's going to be really confusing for anyone looking at this code now or in the future.  I would change it to something else and avoid using that.

Jim.
0
 
LVL 51

Expert Comment

by:Huseyin KAHRAMAN
ID: 36497970
it is a sub, not function, so it does not require "(..)"
0
 
LVL 75
ID: 36497990
excellis:  Try this:

LoadClientTestData (Clnt)  

Private Function LoadClientTestData(ByRef Clnt As clsClient)

' code

End Function
0
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 36498251
it is a sub, not function, so it does not require "(..)"
I agree with HainKurt's assessment, but alternatively you could do:

Call LoadClientTestData (Clnt)

Open in new window


if you were set on using parentheses  : )
0

Featured Post

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.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
How to have several copies of the same forms open simultaneously 9 37
MS Access, hourly employee status 8 42
Null or "" 28 52
Copy all value in one form to another 4 39
This article describes two methods for creating a combo box that can be used to add new items to the row source -- one for simple lookup tables, and one for a more complex row source where the new item needs data for several fields.
In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …

756 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