Wow!! It finally works. Thank you for your very, very useful advice.
Main Topics
Browse All TopicsHello Access people!
I've racked my brains trying to solve this problem and can't. Maybe someone can help me. My work environment is Windows 95/Access 7.0. I created a form containing the Commondialog control using comdlg32.ocx,and evrything is working OK. then I made a run-time version using ADT. The setup wizard correctly added comdlg32.ocx to the registry file. However, at run-time this error message appears: "There is no object in this control."
What to do???
Ayelet Barnea
Kibbutz Saad
Israel
dev1@netvision.net.il
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Business Accounts
Answer for Membership
by: hjackPosted on 1997-11-17 at 22:18:52ID: 1959785
I've done the exact same thing...
er) )
= &H400
you cannot use the common dialog ocx with version 7..
reason is: Access was further down the development cycle when the VB4 ocxes were standardized so they are not always compatible...
here's your options:
you have to use the MSAU7032.DLL (which is the commondialog equivalent for access 7...
here's the declaration--- (this declare function is from the Access 95 Developer's Handbook which I can't recommend enough)--
Declare Function glr_msauGetFileName Lib "MSAU7032.DLL" Alias "#1" _
(gfni As glr_msauGetFileNameInfo, ByVal fOpen As Long) As Long
here's the wrapper function:
Function glrGetFileName(gfni As glr_msauGetFileNameInfo, ByVal fOpen As Boolean) As Long
' A wrapper function for glr_msauGetFileName() in MSAU7032.DLL.
' Unlike choosing a color, you are interested in several of the
' values coming back from glr_msauGetFileName, so it doesn't
' make sense to use optional parameters here: it's better to just
' pass in the structure, so you can retrieve whatever values you
' want from it once you're done.
'
' From Microsoft Access 95 Developer's Handbook
' by Litwin, Getz, Gilbert and Reddick (Sybex)
' Copyright 1995. All rights reserved.
' In:
' gfni: structure containing information about file to open/save
' fOpen: True = Open File, False = Save File
' Out:
' gfni: Filled with info about the chosen filename
' Return Value: glrErrSuccess (0) if successful, non-zero otherwise.
Dim lngRetval As Long
Dim strNull As String
strNull = Chr$(0)
' Null terminate all the elements of the structure.
With gfni
.strFilter = RTrim$(.strFilter) & strNull
.strCustomFilter = RTrim$(.strCustomFilter) & strNull
.strFile = RTrim$(.strFile) & strNull
.strFileTitle = RTrim$(.strFileTitle) & strNull
.strInitialDir = RTrim$(.strInitialDir) & strNull
.strTitle = RTrim$(.strTitle) & strNull
.strDefExt = RTrim$(.strDefExt) & strNull
End With
lngRetval = glr_msauGetFileName(gfni, fOpen)
With gfni
.strFilter = glrTrimNull(.strFilter)
.strCustomFilter = glrTrimNull(.strCustomFilt
.strFile = glrTrimNull(.strFile)
.strFileTitle = glrTrimNull(.strFileTitle)
.strInitialDir = glrTrimNull(.strInitialDir
.strTitle = glrTrimNull(.strTitle)
.strDefExt = glrTrimNull(.strDefExt)
End With
glrGetFileName = lngRetval
End Function
the type def:
' ==== GetFileName ========================
Type glr_msauGetFileNameInfo
hWndOwner As Long
strFilter As String * 255
strCustomFilter As String * 255
lngFilterIndex As Long
strFile As String * 255
strFileTitle As String * 255
strInitialDir As String * 255
strTitle As String * 255
lngFlags As Long
lngFileOffset As Long
lngFileExtension As Long
strDefExt As String * 255
End Type
Public Const glrcOFN_READONLY = &H1
Public Const glrcOFN_OVERWRITEPROMPT = &H2
Public Const glrcOFN_HIDEREADONLY = &H4
Public Const glrcOFN_NOCHANGEDIR = &H8
Public Const glrcOFN_SHOWHELP = &H10
Public Const glrcOFN_NOVALIDATE = &H100
Public Const glrcOFN_ALLOWMULTISELECT = &H200
Public Const glrcOFN_EXTENSIONDIFFERENT
Public Const glrcOFN_PATHMUSTEXIST = &H800
Public Const glrcOFN_FILEMUSTEXIST = &H1000
Public Const glrcOFN_CREATEPROMPT = &H2000
Public Const glrcOFN_SHAREAWARE = &H4000
Public Const glrcOFN_NOREADONLYRETURN = &H8000
Public Const glrcOFN_NOTESTFILECREATE = &H10000
Public Const glrcOFN_NONETWORKBUTTON = &H20000
Public Const glrcOFN_NOLONGNAMES = &H40000
and my function call...
Function GetMyFileName() As String
Dim gfni As glr_msauGetFileNameInfo
gfni.strInitialDir = "C:\"
gfni.strTitle = "Choose A File"
gfni.hWndOwner = Application.hWndAccessApp
' Use filter 2 at startup.
gfni.lngFilterIndex = 2
gfni.lngFlags = glrcOFN_NONETWORKBUTTON
gfni.strFilter = "XL files (*.xls)|" & _
"*.xls|"
' Add an additional filter, leaving the original string intact.
'gfni.strCustomFilter = "Text Files|*.txt|"
If glrGetFileName(gfni, True) = 0 Then
'MsgBox Trim(gfni.strFile)
'if gfni.lngFlags And glrcOFN_READONLY Then
' MsgBox "You opened the file read-only!"
'End If
End If
GetMyFileName = gfni.strFile
End Function
hope this helps...
I really do encourage you to check out their book ---
and I do not intend to break any copyrights by showing this code to you...
jack
jackl@menders.com