Option
Compare Database
Option
Explicit
Declare
Function
GetOpenFileName
Lib
"comdlg32.dll"
Alias
"GetOpenFileNameA"
(pOpenfilename
As
OPENFILENAME)
As
Long
Type OPENFILENAME
lStructSize
As
Long
hwndOwner
As
Long
hInstance
As
Long
lpstrFilter
As
String
lpstrCustomFilter
As
String
nMaxCustFilter
As
Long
nFilterIndex
As
Long
lpstrFile
As
String
nMaxFile
As
Long
lpstrFileTitle
As
String
nMaxFileTitle
As
Long
lpstrInitialDir
As
String
lpstrTitle
As
String
Flags
As
Long
nFileOffset
As
Integer
nFileExtension
As
Integer
lpstrDefExt
As
String
lCustData
As
Long
lpfnHook
As
Long
lpTemplateName
As
Long
End
Type
Public
Const
OFN_FILEMUSTEXIST = &H1000
Public
Const
OFN_READONLY = &H1
Public
Const
OFN_HIDEREADONLY = &H4
Public
Function
DateiOeffnen(
Optional
Titel,
Optional
Filter,
Optional
DefExtension,
Optional
AktDir)
As
String
On
Error
GoTo
Err_DateiOeffnen
Dim
strDateiname
As
String
Dim
strDlgTitel
As
String
Dim
strFilter
As
String
Dim
strDefExtension
As
String
Dim
strAktDir
As
String
Dim
strNull
As
String
Dim
OpenDlg
As
OPENFILENAME
strNull = Chr$(0)
strDateiname =
String
$(512, 0)
If
IsMissing(Titel)
Then
strDlgTitel =
"Datei öffnen"
& strNull
Else
strDlgTitel = Titel & strNull
End
If
If
IsMissing(Filter)
Then
strFilter =
"Alle Dateien"
& strNull &
"*.*"
& strNull & strNull
Else
strFilter = Filter & strNull
End
If
If
IsMissing(DefExtension)
Then
strDefExtension = strNull
Else
strDefExtension = DefExtension & strNull
End
If
If
IsMissing(AktDir)
Then
strAktDir = CurDir$ & strNull
Else
strAktDir = AktDir & strNull
End
If
With
OpenDlg
.lStructSize = Len(OpenDlg)
.hwndOwner = Screen.ActiveForm.hwnd
.lpstrFilter = strFilter
.nFilterIndex = 1
.lpstrFile = strDateiname
.nMaxFile = Len(strDateiname)
.lpstrInitialDir = strAktDir
.lpstrTitle = strDlgTitel
.Flags = OFN_FILEMUSTEXIST
Or
OFN_READONLY
.lpstrDefExt = strDefExtension
If
GetOpenFileName(OpenDlg) <> 0
Then
DateiOeffnen = Left$(.lpstrFile, InStr(.lpstrFile, strNull) - 1)
Else
DateiOeffnen =
""
End
If
End
With
Exit_DateiOeffnen:
Exit
Sub
Err_DateiOeffnen:
writeLogError Forms.start.getMitarbeiterID,
Me
.Name, Err.Source, Err.Description
MsgBox
"Ein Fehler ist aufgetreten!"
& vbCrLf &
"Bitte geben sie dem Administrator bescheit."
& vbCrLf & vbCrLf &
"Schließen sie das Tool und öffnen sie es erneut!"
, vbCritical
Resume
Exit_DateiOeffnen
End
Function