Hi,
I am trying to open another MDE file in RUNTIME mode though the code of a button of another MDE running in RUNTIME mode.
I have tried opening with a command line string that works when used in the windows run command to open a MDE in runtime but as soon as I try to use it in the code it will not work.
What I have done is as follows:
Dim stAppName As String
stAppName = "c:\program files\microsoft office\office11\msaccess.e
xe /runtime C:\Program Files\Installer.mdb"
Call Shell(stAppName, 1)
When the button is clicked it opens Access but then stops and comes up with the error
"Cant find the database file C:\Program.mdb"
so it is not picking up the rest of the command line after c:\program!
I then found the following code to create a module to access files directly as follows:
Option Compare Database
' ************ Code Start **********
' This code was originally written by Dev Ashish.
' It is not to be altered or distributed,
' except as part of an application.
' You are free to use it in any application,
' provided the copyright notice is left unchanged.
'
' Code Courtesy of
' Dev Ashish
'
Private Declare Function apiShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) _
As Long
'***App Window Constants***
Public Const WIN_NORMAL = 1 'Open Normal
Public Const WIN_MAX = 3 'Open Maximized
Public Const WIN_MIN = 2 'Open Minimized
'***Error Codes***
Private Const ERROR_SUCCESS = 32&
Private Const ERROR_NO_ASSOC = 31&
Private Const ERROR_OUT_OF_MEM = 0&
Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const ERROR_BAD_FORMAT = 11&
'***************Usage Examples******************
*****
'Open a folder: ?fHandleFile("C:\TEMP\",WI
N_NORMAL)
'Call Email app: ?fHandleFile("mailto:dash1
0@hotmail.
com",WIN_N
ORMAL)
'Open URL: ?fHandleFile("
http://home.att.net/~dashish", WIN_NORMAL)
'Handle Unknown extensions (call Open With Dialog):
' ?fHandleFile("C:\TEMP\Test
This",Win_
Normal)
'Start Access instance:
' ?fHandleFile("I:\mdbs\Code
NStuff.mdb
", Win_NORMAL)
'*************************
**********
**********
*******
Function fHandleFile(stFile As String, lShowHow As Long)
Dim lRet As Long, varTaskID As Variant
Dim stRet As String
'First try ShellExecute
lRet = apiShellExecute(hWndAccess
App, vbNullString, _
stFile, vbNullString, vbNullString, lShowHow)
If lRet > ERROR_SUCCESS Then
stRet = vbNullString
lRet = -1
Else
Select Case lRet
Case ERROR_NO_ASSOC:
'Try the OpenWith dialog
varTaskID = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL " _
& stFile, WIN_NORMAL)
lRet = (varTaskID <> 0)
Case ERROR_OUT_OF_MEM:
stRet = "Error: Out of Memory/Resources. Couldn't Execute!"
Case ERROR_FILE_NOT_FOUND:
stRet = "Error: File not found. Couldn't Execute!"
Case ERROR_PATH_NOT_FOUND:
stRet = "Error: Path not found. Couldn't Execute!"
Case ERROR_BAD_FORMAT:
stRet = "Error: Bad File Format. Couldn't Execute!"
Case Else:
End Select
End If
fHandleFile = lRet & _
IIf(stRet = "", vbNullString, ", " & stRet)
End Function
'************ Code End **********
I put the following line of code in the button to try to open the database but nothing at all happened when I clicked the button:
fHandleFile "c:\program files\microsoft office\office11\msaccess.e
xe /runtime C:\Program Files\OzSafe Development\Installer.mdb"
, WIN_NORMAL
The only way I could get a response was the following line of code:
fHandleFile "C:\Program Files\OzSafe Development\Installer.mdb"
, WIN_NORMAL
But this opens the file as a normal MDE and not in RUNTIME mode.
Any suggestions or a new method of doing this would be welcomed!
All I need to do is open an MDE in RUNTIME mode though code.
Start Free Trial