12 nolu mesajdaki modül ve benim eklediğim sub'ın kodları aşağıda verilmiştir.
Kod:
Option Compare Database
Option Explicit
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
Public Const WIN_NORMAL = 1
Public Const WIN_MAX = 2
Public Const WIN_MIN = 3
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&
Function fHandleFile(stFile As String, lShowHow As Long)
Dim lRet As Long, varTaskID As Variant
Dim stRet As String
lRet = apiShellExecute(hWndAccessApp, vbNullString, _
stFile, vbNullString, vbNullString, lShowHow)
If lRet > ERROR_SUCCESS Then
stRet = vbNullString
lRet = -1
Else
Select Case lRet
Case ERROR_NO_ASSOC:
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
Function fShellExeTest()
fShellExeTest = apiShellExecute(hWndAccessApp, vbNullString, _
"\\server23\home-cd\dashish\ute_ref.txt", _
vbNullString, vbNullString, 1)
End Function
Function fShellExe(strFileName As String, lngShow As Long) As Long
fShellExe = apiShellExecute(hWndAccessApp, vbNullString, strFileName, _
vbNullString, vbNullString, lngShow)
End Function
Sub testShellEXE()
Dim lngX As Long
lngX = fShellExe("http://www.microsoft.com", 1)
End Sub
Function getFileName() As String
' Displays the Office File Open dialog to choose a file name
' for the current employee record. If the user selects a file
' display it in the image control.
Dim fileName As String
Dim result As Integer
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Dosya Seç!"
.Filters.Add "Bütün dosya türleri", "*.*"
.Filters.Add "Text", "*.txt"
.Filters.Add "Word", "*.doc"
.FilterIndex = 1
.AllowMultiSelect = False
.InitialFileName = "C:\"
result = .Show
If (result <> 0) Then
getFileName = Trim(.SelectedItems.Item(1))
Else
getFileName = Name
End If
End With
End Function