Hallo,
ich habe mir Access 2010 x64 installiert und nun habe ich ein problem mit einem Code schnipsel.
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
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
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
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
End Function
diesen Code habe ich aus einer alten DB genommen. ich weis nur das er mir Filedialog öffnet wo ich eine Datei auswählen kann und den Pfad ausgibt und sonst nix.
nun..ja ..seit dem ich Access 2010 x64 installiert habe funzt das nicht mehr.
Die Fehlermeldung
(http://www.fotos-hochladen.net/uploads/fehlery0hcq2bdmi.png)
kann mir bei der sache irgendwie helfen`? vielleicht kennt einer eine besser Lösung zu FileDialog aufruf
Hallo,
http://www.access-o-mania.de/forum/index.php?topic=10416.0 (http://www.access-o-mania.de/forum/index.php?topic=10416.0)
schau mal da....
jetzt mal ganz blöde Frage,
was wird im Thread mit "Downloadbereich" gemeint, ich meine, wie finde ich den ?
Guckst Du links {unterhalb vom Hauptmenü}: http://www.access-o-mania.de/downloads/entry_view/165/
beim öffnen sagt er mir ungefähr die Selbe meldung wie Oben ^.
mit Access 2010 x86 hat der Obere code gut Funktioniert. nur mit x64 bit version will er nicht.
Hallo!
Bei 64-bit-Access musst du API-Funktionen mit PtrSafe deklarieren. ... Du musst also genau das machen, was in der Fehlerbeschreibung steht.
Statt
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Longist folgendes erforderlich:
Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As LongAnm.: Es gibt dazu auch einen KB-Artikel, dessen Link ich allerdings nicht auswendig kenne. ;)
Zitatseit dem ich Access 2010 x64 installiert habe funzt das nicht mehr.
Da wirst du bestimmt noch mehr entdecken, was nicht mehr funktionieren wird.
Beispielsweise: alle ActiveX-Controls, COM-Add-ins usw., die es nicht in 64-bit-Ausführung gibt.
mfg
Josef
ow.. :-\
dann werde ich wieder die x86 version nutzen müssen. aber ich denke das ist nicht so Tragisch.