Skip to main content

AccessTr.neT


Forma Dosya Ekleme - Eklenen Dosyayı açma

av.fatihberber
av.fatihberber
13
3556

Forma Dosya Ekleme - Eklenen Dosyayı açma

#11
atoz112 hocam, eklediğiniz örnek açılıp buton tıklandığında "ActiveX component create object" hatası veriyor.

komut istemcisinden regsvr komutu ile referans exe uzantılı olduğundan kaydedilemiyor.

Modüldeki kod aşağıdaki ile değiştirildiğinde,

Option Compare Database
Option Explicit

Private Declare PtrSafe 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 = 3
Public Const WIN_MIN = 2


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



ve formdaki butonun tıklandığında olayındaki kod aşağıdaki ile değiştirildiğinde

Call fHandleFile(CurrentProject.Path & "\" & "yer_imi_ornek.kml", WIN_NORMAL)

kml uzantılı dosya google earth üzerinde açılıyor.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
Cvp: Forma Dosya Ekleme - Eklenen Dosyayı açma - Yazar: ozanakkaya - 18/06/2016, 15:25
Task