Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

error '438' Object doesn't support this property or method when deploy access applicatioon on client machine

Posted on 2003-12-11
10
Medium Priority
?
2,126 Views
Last Modified: 2007-12-19
Hi,

I have developed an access application. This application consists of form, queries, table, modules (VBA).
The access application run well in my machine (windows XP profesional). However when I deploy this access application to client machine (windows 2000 profesional), i found this error when user try to click on the 'browse' button.
"error '438' Object doesn't support this property or method"

This is the code for the browse event:
Private Sub cmdBrowse_Click()
 Dim strNewFile As String
   On Error GoTo Browse_Err
   With Me.cdlgOpen
      InitDir = "C:\MyDocuments\"
      .CancelError = True
      .Filter = "Excel Files (*.xls)|*.xls|"   'Can change (i.e. "Word Files (*.doc)|*.doc|") or ("All Files (*.*)|*.*|") see help for other examples
      .ShowOpen   ' Can use showSave for saving file, same principle
      strNewFile = .Filename
      txtFilePath.value = strNewFile
   End With
                             
Browse_Exit:
   Exit Sub

Browse_Err:
   If Err.Number = 32755 Then
      Resume Browse_Exit
   Else
      MsgBox Err.Number & ": " & Err.Description
      Resume Browse_Exit
   End If

End Sub

How can I solve this problem? thanks!

0
Comment
Question by:linnyphang
[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
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 3

Expert Comment

by:bossjohnc
ID: 9919594
If this code works on some machines and not others, then you may want to make sure the MDAC versions are sufficiently recent/compatible on both machines.

You can download MDACs here...

http://msdn.microsoft.com/library/default.asp?url=/downloads/list/dataaccess.asp

You can use componentchecker to identify incompatible MDAC files and the current version of the MDAC - it's available here...

http://support.microsoft.com/default.aspx?kbid=307255

where there is lots of other useful info on the subject.

This might not be your problem, but I suspect it may be.
0
 
LVL 30

Accepted Solution

by:
nmcdermaid earned 375 total points
ID: 9920280
You will proabbly find that the version of common dialog (it looks like you're using it) is different between machines.

Common dialog is in COMDLG32.OCX.. check the version of this file between machines.
0
 
LVL 39

Expert Comment

by:stevbe
ID: 9922068
using the straight api code for the file dialog box avoids the dll nonsense you are experiencing...

http://www.mvps.org/access/api/api0001.htm

Steve
0
Learn Veeam advantages over legacy backup

Every day, more and more legacy backup customers switch to Veeam. Technologies designed for the client-server era cannot restore any IT service running in the hybrid cloud within seconds. Learn top Veeam advantages over legacy backup and get Veeam for the price of your renewal

 

Author Comment

by:linnyphang
ID: 9925647
I deploy the application again by include COMDLG32.OCX in my deployment package.
I install this package on client machine. It works!

However, it wont works if i manually copy this COMDLG32.OCX directly to clinet machine (c:\winnt\system32\)

Thanks a lot for you comments!
0
 
LVL 30

Expert Comment

by:nmcdermaid
ID: 9926741
It's good to have a solution but just be wary about deploying DLL's as unfortunately they are 'common' libraries that other applications use and if you copy on one vesion when all the applications are expecting another version, all hell breaks lose!

As far as copying the files on, you usually also need to register them using REGSVR32

0
 
LVL 39

Expert Comment

by:stevbe
ID: 9929860
"It's good to have a solution but just be wary about deploying DLL's as unfortunately they are 'common' libraries" ...

that is why I always use the api code instead of the control, I never have to worry about it.
0
 
LVL 30

Expert Comment

by:nmcdermaid
ID: 9940721
The API code references COMDLG32.DLL instead of COMDLG32.OCX, so there isn't that much difference.

0
 
LVL 39

Expert Comment

by:stevbe
ID: 9941508
the difference is that I do not have to worry about presence or installation of the .ocx :-)
0
 
LVL 30

Expert Comment

by:nmcdermaid
ID: 9941606
True, but what I mean is, OCX or DLL, it doesn't matter, they are both common libraries. If you can get a version problem on the OCX (as in this case), you can get a version problem on the DLL. :-). We won't know in this case unless bossjohnc wants to try your code. I would be interested to find out.

Certainly as far as Access goes, using API's are far more reliable than ticking things in the References or Components list. In fact it might be a good  habit for me to start using if it stops that annoying 'Reference not found' problem.







0
 
LVL 3

Expert Comment

by:bossjohnc
ID: 9941704
No, not me! I'm not the original author - however from my understanding, if you use the API (DLL), it doesn't matter what version it is, as Windows deals with it rather than Access. For example, with the file dialogue API, depending on the version, the dialogue may look different (depending on the version), but the result passed back to Access won't differ.

I have a fairly basic understanding so I might be wrong of course : )
0

Featured Post

Independent Software Vendors: 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!

Question has a verified solution.

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

Microsoft Access is a place to store data within tables and represent this stored data using multiple database objects such as in form of macros, forms, reports, etc. After a MS Access database is created there is need to improve the performance and…
Code that checks the QuickBooks schema table for non-updateable fields and then disables those controls on a form so users don't try to update them.
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…

598 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