Access 14 x64

17/11/2009 - 20:14 von Martin Brugger | Report spam
Liebe NG,

habe mir heute die Beta2 von Office14 x64 installiert und wollte mal schauen
ob meine Access Datenbanken zukünftig weiter funktionieren.

Leider ist für die Umstellung auf 64 bit doch einiges zu korrigieren. Weiss
aber garnicht was da gemeint ist.

Hier ein beispiel Code bei dem folgende Fehlermeldung erscheint:

Fehler beim Kompilieren:
Der Code muss für die Verwendung auf 64bit Systemen aktualisiert werden.
Überarbeiten Sie die Declare Anweisungen und markieren Sie diese mit dem
PtrSafe Attribut ???

Beispiel Code:

Option Compare Database
Option Explicit
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA"
( _
ByVal lpBuffer As String, nSize As Long) As Long

Public Function UserNameApi() As String
Dim strReturn As String, nSize As Long, lngRet As Long

'GetUserName fills the variable with a name and ends with a 0-char.
strReturn = String(256, Chr(0))
nSize = Len(strReturn)

lngRet = GetUserName(strReturn, nSize) 'will fail when nSize is too small
If lngRet = 0 Then 'failure
If nSize > 0 Then 'more data (ERROR_MORE_DATA)
strReturn = String(nSize, Chr(0)) 'nSize contains necessary length
lngRet = GetUserName(strReturn, nSize)
End If
End If

'If the variable contains a 0-char, the username is everything in front of
it.
nSize = InStr(1, strReturn, Chr(0))
If nSize > 0 Then
UserNameApi = Left(strReturn, nSize - 1)
Else
UserNameApi = strReturn
End If

End Function



Kann mir da bitte jemand weiterhelfen?
 

Lesen sie die antworten

#1 Jörg Ackermann
17/11/2009 - 20:33 | Warnen spam
Hallo Martin,

Martin Brugger meinte:



habe mir heute die Beta2 von Office14 x64 installiert und wollte mal
schauen ob meine Access Datenbanken zukà¼nftig weiter funktionieren.

Leider ist fà¼r die Umstellung auf 64 bit doch einiges zu
korrigieren. Weiss aber garnicht was da gemeint ist.

Hier ein beispiel Code bei dem folgende Fehlermeldung erscheint:

Fehler beim Kompilieren:
Der Code muss fà¼r die Verwendung auf 64bit Systemen aktualisiert
werden. àœberarbeiten Sie die Declare Anweisungen und markieren Sie
diese mit dem PtrSafe Attribut ???

Beispiel Code:

Option Compare Database
Option Explicit
Private Declare Function GetUserName Lib "advapi32.dll" Alias
"GetUserNameA" ( _
ByVal lpBuffer As String, nSize As Long) As Long
...



Versuche mal:
(beachte auch ...as LongPtr...)

Private Declare PtrSafe Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" ( _
ByVal lpBuffer As String, nSize As LongPtr) As Long

Gruß

Ähnliche fragen