ich habe mit visual basic ein kleines programm geschrieben welches mir eine Access-DB öffnen soll.
Bin ein wenig verzeweifelt, da shellexecute keine fehlermeldung ausgibt und der rückgabe wert imense Werte annimmt. (Milliardenbereich und grösser)
Ich übergebe der sub einen Pfad für die accdb-Datei oder ich codiere den pfad gleich mit aber das gleiche ergebnis. Das ganze unter vista
Hier mein Code:
Public Declare Function ShellExecute 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
Private Const SW_HIDE = 0
Private Const SW_MAXIMIZE = 3
Private Const SW_MINIMIZE = 6
Private Const SW_NORMAL = 1
Private Const SW_SHOW = 5
Private Const SW_RESTORE = 9
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOWMINIMIZED = 2
Private Const SW_SHOWMINNOACTIVE = 7
Private Const SW_SHOWNA = 8
Private Const SW_SHOWNOACTIVATE = 4
Private Const SW_SHOWNORMAL = 1
Private Const ERROR_BAD_FORMAT = 11&
Private Const SE_ERR_ACCESSDENIED = 5
Private Const SE_ERR_ASSOCINCOMPLETE = 27
Private Const SE_ERR_DDEBUSY = 30
Private Const SE_ERR_DDEFAIL = 29
Private Const SE_ERR_DDETIMEOUT = 28
Private Const SE_ERR_DLLNOTFOUND = 32
Private Const SE_ERR_FNF = 2
Private Const SE_ERR_NOASSOC = 31
Private Const SE_ERR_OOM = 8
Private Const SE_ERR_PNF = 3
Private Const SE_ERR_SHARE = 26
Private Sub startt(ByVal da As String)
Dim Retval As Long
Retval = ShellExecute(0, "open", "c:\Bug.txt", "", "", SW_SHOWMAXIMIZED)
Select Case Retval
Case SE_ERR_NOASSOC
MsgBox("Datei ist nicht Assizoiert", vbInformation, "Fehler")
Exit Sub
Case SE_ERR_PNF
MsgBox("Pfad wurde nicht gefunden", vbInformation, "Fehler")
Exit Sub
Case SE_ERR_FNF
MsgBox("Datei wurde nicht gefunden", vbInformation, "Fehler")
Exit Sub
Case 8, 26, 32, 28, 29, 30, 27, 5, 11 ' alle anderen Fehler
Exit Sub
End Select
End Sub ???? Was ist da los? |