[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 520
  • Last Modified:

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

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
excellis
Asked:
excellis
  • 6
  • 6
  • 3
  • +3
1 Solution
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
Clnt is a function in Access   CInt()

Try using a different variable name.

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

mx
0
 
käµfm³d 👽Commented:
What does the definition of LoadClientTestData look like?
0
 
excellisAuthor Commented:
My variable is CLNT as in "Client".  It is not CINT as in Convert to Integer.

Matt
0
Restore individual SQL databases with ease

Veeam Explorer for Microsoft SQL Server delivers an easy-to-use, wizard-driven interface for restoring your databases from a backup. No expert SQL background required. Web interface provides a complete view of all available SQL databases to simplify the recovery of lost database

 
excellisAuthor Commented:
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
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
Clnt - yours
CInt - mine ....

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

mx

0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
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
 
excellisAuthor Commented:
DatabaseMX,

I get the same error.

Matt
0
 
käµfm³d 👽Commented:
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
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
I'm not sure you can pass a Class as an argument ... are you ?

mx
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
How about ..


    LoadClientTestData (Clnt)

Private Sub LoadClientTestData(ByRef ABC As clsClient)  
0
 
excellisAuthor Commented:
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
 
Dale FyeCommented:
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
 
HainKurtSr. System AnalystCommented:
did you try

LoadClientTestData (Clnt)
-->
LoadClientTestData Clnt
0
 
excellisAuthor Commented:
HainKurt,

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

Change LoadClientTestData (Clnt)
-->
LoadClientTestData Clnt

Thank you,
Matt
0
 
excellisAuthor Commented:
The solution works but I do not understand why.
0
 
Jim Dettman (Microsoft MVP/ EE MVE)PresidentCommented:

<<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
 
HainKurtSr. System AnalystCommented:
it is a sub, not function, so it does not require "(..)"
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
excellis:  Try this:

LoadClientTestData (Clnt)  

Private Function LoadClientTestData(ByRef Clnt As clsClient)

' code

End Function
0
 
käµfm³d 👽Commented:
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

Restore individual SQL databases with ease

Veeam Explorer for Microsoft SQL Server delivers an easy-to-use, wizard-driven interface for restoring your databases from a backup. No expert SQL background required. Web interface provides a complete view of all available SQL databases to simplify the recovery of lost database

  • 6
  • 6
  • 3
  • +3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now